加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么大写的属性名称没有在Objective-C / UITouch中出错?

发布时间:2020-12-16 09:43:12 所属栏目:百科 来源:网络整理
导读:resultLabel是一个UILabel.那么为什么呢 resultLabel.Text= @""; 不给出错误?它应该是resultLabel.text. 感谢您的任何见解. 解决方法 属性foo的默认setter函数是setFoo:,首字母大写.因此两条线 resultLabel.text = @"";resultLabel.Text = @""; 生成相同的
resultLabel是一个UILabel.那么为什么呢

resultLabel.Text= @"";

不给出错误?它应该是resultLabel.text.

感谢您的任何见解.

解决方法

属性foo的默认setter函数是setFoo:,首字母大写.因此两条线

resultLabel.text = @"";
resultLabel.Text = @"";

生成相同的代码

[resultLabel setText:@""];

这仅适用于setter函数,而不适用于getter:

NSString *x = self.text; // --> x = [self text]
NSString *x = self.Text; // --> x = [self Text]

因此,您不能拥有两个只在第一个字母的情况下不同的读写属性,这将生成编译器错误:

@property (nonatomic,strong) NSString *text;
@property (nonatomic,strong) NSString *Text;

self.text = @"foo";
// error: synthesized properties 'text' and 'Text' both claim setter 'setText:'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读