Swiftのstrong, weak
こんにちは、ちょっと混乱してきたので質問させてください。
あるアプリを作ってる際に以下が気になりました。
//
//  WordListVCL.swift
//  FinalStudyEnglish
//
//
import UIKit
#if !RX_NO_MODULE
import RxSwift
import RxCocoa
#endif
class WordListVCL: EnglishBase,ListDataSourceDelegate,UITableViewDelegate,ListProtocol {
    let datasource = WordDataSource()
    var aryWord: Variable<Array<NSMutableArray>> = Variable(Array<NSMutableArray>())
    var aryDate: Array<String> = Array<String>()
    func initData(){
        let data = EnglishWord.singleton.getWordWithLimit(intCategoryId, intStart: intStart, intLimit: intLimit)
        aryDate = data.0
        datasource.aryWordSections = aryDate
        aryWord.value = data.1
        print(aryWord.value)
        print(aryDate)
    }
}
//
//  WordDataSource.swift
//  FinalStudyEnglish
//
//
import UIKit
class WordDataSource: ListDataSource {
    weak var aryWordSections: NSArray?
}
ある強参照の変数を弱参照の変数に代入すると、代入した瞬間に空のようです。
自分のstrongとweakのイメージとして、例えば、「A」というクラスでstrongで確保してる変数は、
「B」というクラスの変数に代入する際には、その代入される側はweakまたはunownedが望ましいと理解してるのですが、違うのでしょうか?