-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