我正在尝试理解我拥有的一些示例代码。在 .h 文件中,变量以下列方式声明
@property (readonly, nonatomic) NSString *username;
@property (readonly, nonatomic, unsafe_unretained) NSURL *avatarImageURL;
在实现文件中
@private
NSString *_avatarImageURLString;
}
@synthesize username = _username;
- (id)initWithAttributes:(NSDictionary *)attributes {
self = [super init];
if (!self) {
return nil;
}
_username = [attributes valueForKeyPath:@"username"];
_avatarImageURLString = [attributes valueForKeyPath:@"avatar_image.url"];
return self;
}
- (NSURL *)avatarImageURL {
return [NSURL URLWithString:_avatarImageURLString];
}
我知道 _variable 是类中变量的约定,但我真的不明白为什么要这样做。为什么不直接使用用户名?为什么要创建另一个变量。此外,_avatarImageURLString 让我更加困惑,为什么还要创建一个名为 avatarImageURL 的属性,如果您要创建另一个名为 _avatarImageURLString ....
谢谢!