特定の場合のみvar ホニャララ
をweak var ホニャララ
にすることはできるでしょうか?
方向性がよろしくない場合は他の方法で回避することができるでしょうか?
swift
1 2import UIKit 3 4enum Status { 5 case a // この場合はrecordは他の場所で保持されていないので、strongで宣言しないと代入した瞬間に消えてしまいます。 6 case b // この場合は他の場所でstrongで宣言されているrecordsをもってくる 7} 8 9class Records { 10 11} 12 13class DataStore { 14 15 var status: Status 16 17 // これを、status == aのときは var record で、status == b のときは weak var とすることはできるでしょうか? 18 var records: Records! 19 20 init(status: Status) { 21 self.status = status 22 23 records = //読み込みロジック 24 } 25 26} 27 28// 現状の解決策 29 30class DataStore { 31 32 var status: Status 33 34 var records: Records { 35 switch status { 36 case .a: return records_a 37 case .b: return records_b 38 } 39 } 40 41 var records_a: Record! 42 43 weak var records_b: Record! 44 45 init(status: Status) { 46 self.status = status 47 48 switch status { 49 case a: records_a = // 読み込みロジック 50 case b: records_b = // 読み込みロジック 51 } 52 } 53} 54
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/27 14:50