关于 Objective-c 块,我正在阅读的文档说:
您不能
self
在独立块对象中引用。如果需要,您必须将self
对象作为参数传递给块。您无法使用点符号访问独立块内对象的属性。如果您需要这样做,请使用 setter 和 getter 方法。
但我可以编写以下内容,并且它按预期运行。
- (void)testing
{
self.name = @"wahaha";
void (^independentBlock)(NSString *arg) = ^(NSString *arg){
self.name = @"";
NSLog(@"%@ -- %@",arg, self.name);
};
a(@"abcd"); // abcd -- wahaha
}
那么,为什么规则说不能使用点符号呢?