私はSwift言語を使用しています。 私はviewcontrollerクラスに属しています。別のクラスに何かを保存したいのですが、そのクラスにクラスへの強いポインタを持たせたくありません。だから私はweak
を使用しています。私はこれを行う2つの方法を試みています。一つの作品(私のViewControllerクラスへの強いポインタを持っていないで成功したように)、および1つは(私のViewControllerへのポインタは、私がweak
としてそれを名前を付けていても、強いものではない。弱いvarと2つのクラス間のポインタの問題
class MyViewController {
override func viewDidLoad() {
someOtherClass.function(someArgument) { [ weak myself = self ] in
myself?.someButton.text = "I got you captured, Mr. ViewController"
}
前のコード私のViewControllerクラスに強く、この例では
class MyViewController {
override func viewDidLoad() {
someOtherClass.function(someArgument) {
weak let myself = self
myself?.someButton.text = "I got you captured, Mr. ViewController"
}
、someOtherClassポイント誰もが理由を知っている:。それから私はこのように、関数自体でweak myself = self
と名前を取り出し強くMyViewControllerにsomeOtherClassポイントをさせないことに成功しましたか。?
}
すばやく3回編集すると申し訳ありません。たくさんのものを修正しなければならなかったのですか? – BossGiveMeArrays
弱い参照にしたいのであれば、なぜ自分ではなく自分自身を持っていますか?弱いということは、いつでもどこでも行けないことを意味します。 – Putz1103
あなたはそうです。それを私が直した。しかし、それはまだ私のViewControllerを強く指している – BossGiveMeArrays