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