作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我很难理解将属性设置为变量和对象的实际用途。我试图阅读许多教程和苹果文档,但我仍然无法理解为什么我们应该使用一个属性以及为什么我们需要合成该属性?考虑到我们声明
@property(nonatomic,retain) NSString *str;
为什么我们需要声明一个属性。据我了解,我们可以通过您的类(class)访问字符串对象 str
。但是为什么我们需要在这里创建一个属性呢?
有人可以帮帮我吗?
最佳答案
属性通常用于从类外部访问实例变量。
例如,如果你有一个指向你的类的指针,你可以像这样获取/设置属性
someObject.str = @"some string";
您还必须@synthesize
属性,通常是这样的:
@synthesize str = _str;
在该片段中,_str
是属性设置和获取的实例变量。
属性本质上只是创建访问器(setters/getters)的快捷方式。
例如,使用您的属性的 setter 看起来像这样:
- (void)setStr:(NSString *)str {
if(str != _str) {
[_str release];
_str = [str retain];
}
}
setter/getter 看起来像这样:
- (NSString *)str {
return _str;
}
通过创建属性,前两个代码块会自动为您创建。
关于iphone - 如何在 objective-c 中使用属性的实际示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164401/
我是一名优秀的程序员,十分优秀!