为什么我不能在 Objective-C 中同时实现自定义 setter 和自定义 getter? [重复]

问题描述 投票:0回答:1

我的问题很简单,希望能尽快得到答案。

我正在编写一个 iPhone 应用程序,在我的一个对象上我有一个名为“文本”的属性。在实现文件中,我编写了一个自定义设置器:

- (void) setText: (NSString*) text
{
    _text = text;
    self.textField.text = text;
}

这工作得很好,直到我尝试也实现吸气剂:

- (NSString*) text
{
    return self.textField.text;
}

在我写完这个之后,编译器开始抱怨设置器中的第一行:

_text = text;

说“使用未声明的标识符_text;您的意思是“文本”吗?

不。我的意思不是文字。我的意思是_text。强大的编译器,you 是什么意思?

ios objective-c setter undeclared-identifier
1个回答
1
投票

该类是否有一个名为

_text
、类型为
NSString*
的 ivar(成员变量)?使用手动 getter 和 setter,而不是 @synthesizing 它们,您需要显式声明一个。

在类接口定义中引入:

@interface MyClass
{
    //more ivars

    NSString *_text;
}
//methods and properties...
@end
© www.soinside.com 2019 - 2024. All rights reserved.