-2
將對象存儲在NSMutableArray中時,我無法更新對象的屬性,例如背景顏色或UIView的「隱藏」屬性。Objective C更新數組中的對象
NSMutableArray *myArray;
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
myView.backgroundColor = [UIColor blueColor];
[self.view addSubview:myView];
myArray[0] = myView;
//myArray[0].backgroundColor = [UIColor redColor];
((UIView *)myArray[0]).backgroundColor = [UIColor redColor];
我第一次嘗試被註釋掉,它並不能編譯,因爲myArray的[0]返回類型爲「ID」,這樣編譯器無法識別backgroundColor屬性。
對於我的第二次嘗試,我鑄造成一個UIView,因此它承認backgroundColor屬性,但代碼不起作用(背景仍然是藍色的)。
正在轉換爲UIView創建我的視圖的副本,因此不更新我打算更新的視圖?我怎樣才能得到這個工作使用UIViews數組?
初始化數組解決了我的問題。我認爲忘記初始化對象對我自己和其他新的Objective-C程序員來說是一個常見的錯誤,可能是因爲我習慣了編譯器在Java中捕獲它。感謝您的明確迴應。 – trudawg0830