我是来自 JavaScript 世界的 Objective-C 新手,我正在尝试在一个类上定义一个“回调”属性。在 JavaScript 领域,我们习惯于随意传递函数,但似乎 Objective-C 并不那么宽松。
这是我尝试做的事情(尽量简化事情):
@interface CallbackThing : NSObject
@property (nonatomic) NSString *derpDerp;
@property (nonatomic) SEL callback;
@end
然后在另一堂课......
CallbackThing *testCallbackThing = [CallbackThing alloc] init];
testCallbackThing.callback = @selector(methodInThisCLass);
终于在另一个班级...
if (self.testCallbackThing.callback != nil){
[self.thatOtherClass performSelector:self.testCallbackThing.callback];
}
效果很好!我为自己感到骄傲……直到……
“警告:performSelector 可能会导致泄漏,因为它的选择器是未知的!”
尝试阅读内容,似乎做事的新方法是使用块......但我看过的例子在这种情况下都没有多大意义。