【发布时间】:2013-01-31 08:13:01
【问题描述】:
我正在尝试创建一个可以通过任何方法使用的全局块。我希望这个块访问类的@properties。但是当我尝试这样做时,我得到“使用未声明的标识符自身”访问支持变量 _myVar 也不起作用。
为什么这不起作用?什么解决方法会给我一个可以从任何方法访问的块?谢谢。
一个例子:
@interface myClass()
@property (nonatomic,assign) BOOL subjectSex;
@end
@implementation
// these returns will get: use of undeclared identifier
int (^myBlock) = ^{
if(self.subjectSex) return 1;
return (!_subjectSex);
}
@end
【问题讨论】:
-
原因属性是一个实例变量,而不是一个类。作为一种解决方法,您可以使用属性创建单例或使用类访问器创建类变量。
-
如果您显示您的实际代码,会更容易回答这个问题。
-
您希望
self在这里出现什么对象? -
将 self 作为参数传入块
标签: ios objective-c properties objective-c-blocks block