有人可以分享一些有關在init方法或指定初始值設定項中使用@property iVars的最佳實踐/代碼約定的一些知識嗎?使用@property ivars的最佳做法
請參閱我的例子:
@interface MyClass()
@property(nonatomic,strong) nsstring *tempString;
@property(nonatomic,strong) NSMutableArray *arrItems;
@end
@implementation ViewController
- (id)init
{
if (self = [super init]) {
//Is this best practice/correct
_tempString = @"";
_arrItems = [[NSMutableArray alloc] initWithCapacity:0];
...
...
//Or this
self.tempString = @"";
self.arrItems = [[NSMutableArray alloc] initWithCapacity:0];
}
return self;
}
@end
爲什麼一個或另一個應該用什麼建議?
謝謝...
在您的示例中,我通常會使用屬性設置器來指定值,例如, 'self.tempString = @「一些價值」;'。原因是因爲你可能在setter中有一些自定義邏輯。例如,也許你的tempString setter想要從電話號碼中刪除破折號。如果您直接將值分配給伊娃,您將繞過該邏輯。這個想法是,如果你有一個,那麼使用setter,除非你看到一個理由不。請注意,如果您直接分配給ivars,則需要自己管理保留/複製/原子結構(setter處理此操作,除非被覆蓋)。 – Jeremy