Objective c 这些代码行会相互影响吗?
我正在App Store上收听/观看关于Paul Hegarty的教程。在他的课程中,他指出您应该始终在实现文件上合成属性,如下所示:Objective c 这些代码行会相互影响吗?,objective-c,ios,xcode,Objective C,Ios,Xcode,我正在App Store上收听/观看关于Paul Hegarty的教程。在他的课程中,他指出您应该始终在实现文件上合成属性,如下所示: @sysnthesize example = _example; 我也在做一个苹果文档教程,它不合成属性。它还具有如下初始化方法: - (id)initWithName:(NSString *)name location:(NSString *)location date:(NSDate *)date { self = [super init];
@sysnthesize example = _example;
我也在做一个苹果文档教程,它不合成属性。它还具有如下初始化方法:
- (id)initWithName:(NSString *)name location:(NSString *)location date:(NSDate *)date
{
self = [super init];
if (self)
{
_name = name;
_location = location;
_date = date;
return self;
}
return nil;
}
@end
如果像这样将它们加在一起,它们是否会相互影响、取消或以其他方式相互干扰:
@implementation BirdSighting
@synthesize name = _name;
@synthesize location = _location;
@synthesize date = _date;
- (id)initWithName:(NSString *)name location:(NSString *)location date:(NSDate *)date
{
self = [super init];
if (self)
{
_name = name;
_location = location;
_date = date;
return self;
}
return nil;
}
@end
谢谢你的帮助 从“这些会相互作用”的角度来思考,可能不是正确的思维模式。首先要了解每一行的作用。让我们从每个例子中考虑一个:
@synthesize name = _name;
如果存在一个名为name的属性(@property,通常在.h中),那么这将执行以下操作:
_name = name;
这只做了一件事;它将“name”的地址分配给实例变量_name
所以现在我们了解它们的作用,让我们考虑它们是如何相互作用的: