設置屬性我創建了一個簡單的UIViewController有一個自定義的init方法是這樣的:上分配的UIViewController
-(id)initWithGroupNumber:(NSString *)groupNumber {
if ((self = [super init]) == nil) {
return nil;
}
self.levelGroup = groupNumber;
return self; }
levelGroup是寫在.h文件
@property (nonatomic, retain) NSString *levelGroup;
當我打電話屬性以上方法:
LevelsViewController *lvc = [[LevelsViewController alloc]initWithGroupNumber:@"5"];
控制器被分配但內部的所有屬性都設置爲零。我不明白爲什麼。
1)除非你使用ARC,'self.levelGroup = [[的NSString的alloc] INIT];'創建一個內存泄漏。 2)你不想做'self.levelGroup = groupNumber;'而不是? 3)「內部所有財產」是什麼意思,只有一個財產? – DarkDust 2012-03-01 18:39:59
此外,在你的初始化這樣更改代碼:自= [超級初始化] if(self){// Do Stuff} return self; – 2012-03-01 18:43:39
@Raphael艾爾斯:我不同意你的建議,沒有必要改變這種情況。他的解決方案絕對沒問題。它在語義上是正確的,所以沒有理由去改變它。我採用了類似的模式,其優點是節省了縮進級別。如果找到你建議的模式(並且蘋果使用了很多),那就太難看了。 – DarkDust 2012-03-01 19:11:06