我的问题很简单,希望能尽快得到答案。
我正在编写一个 iPhone 应用程序,在我的一个对象上我有一个名为“文本”的属性。在实现文件中,我编写了一个自定义设置器:
- (void) setText: (NSString*) text
{
_text = text;
self.textField.text = text;
}
这工作得很好,直到我尝试也实现吸气剂:
- (NSString*) text
{
return self.textField.text;
}
在我写完这个之后,编译器开始抱怨设置器中的第一行:
_text = text;
说“使用未声明的标识符_text;您的意思是“文本”吗?
不。我的意思不是文字。我的意思是_text。强大的编译器,you 是什么意思?
该类是否有一个名为
_text
、类型为 NSString*
的 ivar(成员变量)?使用手动 getter 和 setter,而不是 @synthesizing 它们,您需要显式声明一个。
在类接口定义中引入:
@interface MyClass
{
//more ivars
NSString *_text;
}
//methods and properties...
@end