2015-06-20 2 views
-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]; 

Моя первая попытка закомментирована, он не компилируется, потому что туАггау [0] возвращает тип «идентификатор», так что компилятор не распознает свойство BackgroundColor.

Для моей второй попытки я передал ее в UIView, поэтому он распознает свойство backgroundColor, но код не работает (фон все еще синий).

Является ли листинг в UIView, создавая копию моего представления и, следовательно, не обновляя вид, который я намеревался обновить? Как я могу заставить это работать, используя массив UIViews?

ответ

2

Прежде всего, необходимо инициализировать массив

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

Затем добавить объект в массив с помощью

[myArray addObject:myView]; 

Наконец использовать свой код, чтобы изменить цвет фона первого объекта

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

Инициализация массива решила мою проблему. Я думаю, что забыть инициализировать объекты является распространенной ошибкой для меня и других новых программистов с объективом c, возможно, потому, что я привык к компилятору, поймав его для меня на Java. Благодарим вас за четкий ответ. – trudawg0830

Смежные вопросы