プロジェクトのインスタンス変数にブロックを格納しようとしています。インスタンス変数を宣言する場所は次のとおりです。
@property (nonatomic, copy)void (^loginCompletedTask)();
このメソッドを呼び出して変数を割り当てています。
- (void)requireLoggedInForBlock:(void (^)())completion {
self.loginCompletedTask = completion;
// Display an alert view that requires username and password input
}
このメソッドの最初の行の後、self.loginCompletedTask
非 nil で、 type でデバッガーにログインしますNSMallocBlock
。しかし、ログイン警告ビューが返された後に実際にブロックを実行する必要がある場合、それは nil になっています。
私はもう試した:
strong
の代わりにcopy
, で宣言する- として設定し
self.loginCompletedTask = ^{completion();};
、 - プロパティ ( ) を使用する代わりに、変数を直接設定します
_loginCompletedTask = ...
。
私は何が欠けていますか?