我对Objective C很新.(现在两天).在阅读时@synthesize,它似乎与我的理解重叠@property(我以为我理解了)......所以,有些细节需要在我脑海中消失......这让我烦恼.
请纠正我,如果我错了有关性别差异@property和@synthesize:
如果要声明@property在你的@interface,那么你就告诉世界,用户可以期望使用标准的getter和setter该属性.此外,XCode将为您制作通用的getter和setter. ......但是,对于没有什么程度是与@财产申报情况?(IE的意思是"完全"......就像你在你的看不见的声明@interface,以及你看不见的代码@interface?
-要么-
是否只处理@property您看不见的代码声明@interface- 而@synthesize在您的@implementation部分中处理看不见的代码实现?)
我目前正在使用最新版本的Xcode(v5.0.2),我的应用程序的部署目标是iOS 7.0.
我的问题是,无论在哪个类中,我都可以在标题中设置属性
例如: @property (strong, nonatomic) NSString *firstName;
在实现文件中,我可以很好地合成它
例如: @synthesize firstName;
我的问题是我不能_firstName在代码中使用.我在其他项目中使用了自动ivars就好了(属性名称以下划线开头).
Xcode抱怨并告诉我将其更改为没有下划线的属性名称.我不明白为什么这个项目不会自动为我创建带有下划线的ivars.我知道在旧版本的Objective-C中,你必须自己做,但你不适用于iOS 7.
谢谢!