3

resultLabel是一个UILabel。那为什么

 resultLabel.Text= @"";

不报错?应该是resultLabel.text

感谢您的任何见解。

4

1 回答 1

7

属性的默认设置函数foosetFoo:,首字母大写。因此两条线

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:'
于 2013-03-14T14:06:06.323 回答