こんにちは、ちょっと混乱してきたので質問させてください。
あるアプリを作ってる際に以下が気になりました。

//
//  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が望ましいと理解してるのですが、違うのでしょうか?