Objective C更新数组

时间:2015-06-20 17:36:25

标签: ios objective-c

在NSMutableArray中存储对象时,我无法更新对象的属性,例如背景颜色或"隐藏" UIView的财产。

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数组来实现这一点?

1 个答案:

答案 0 :(得分:2)

首先你需要初始化数组

NSMutableArray *myArray = [[NSMutableArray alloc]init];

然后将对象添加到数组中使用

[myArray addObject:myView];

最后使用您的代码更改第一个对象的背景颜色

((UIView *)myArray[0]).backgroundColor = [UIColor redColor];