Why is capitalized property name not giving an error in Objective-C / UITouch?
capitalization, objective-c, properties
Solution
The default setter function for a property `foo` is `setFoo:`, with the first letter capitalized. Therefore both lines
resultLabel.text = @"";
resultLabel.Text = @"";
generate the same code
[resultLabel setText:@""];
This works only with the setter function, not with the getter:
NSString *x = self.text; // --> x = [self text]
NSString *x = self.Text; // --> x = [self Text]
As a consequence, you cannot have two read-write properties that differ only in the case of the first letter, this will generate a compiler error:
@property (nonatomic, strong) NSString *text;
@property (nonatomic, strong) NSString *Text;
self.text = @"foo";
// error: synthesized properties 'text' and 'Text' both claim setter 'setText:'
Problem
`resultLabel` is a `UILabel`. So why does ``` resultLabel.Text= @""; ``` not give an error? It should be `resultLabel.text`. Thanks for any insights.