我正在尝试在我的项目的实例变量中存储一个块。这是我声明实例变量的地方:
@property (nonatomic, copy)void (^loginCompletedTask)();
我通过调用此方法来分配变量:
- (void)requireLoggedInForBlock:(void (^)())completion {
self.loginCompletedTask = completion;
// Display an alert view that requires username and password input
}
在此方法的第一行之后,self.loginCompletedTask
是非零并使用 type 登录调试器NSMallocBlock
。但是,当我实际需要在登录警报视图返回后运行该块时,它已变为 nil。
我试过了:
strong
用而不是声明copy
,- 设置为
self.loginCompletedTask = ^{completion();};
, - 直接设置变量,而不是使用属性 (
_loginCompletedTask = ...
)。
我错过了什么?