ОК, я объясню проблемы, с которыми вы столкнулись. Способ сделать то, что вы пытаетесь сделать, заключается в следующем:
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
NSArray *array = [NSArray arrayWithObject:imageView];
[imageView release];
[[array objectAtIndex:0] setCenter:CGPointMake(0.0,0.0)];
Во-первых, нет способа -[NSMutableArray loadWithObject:]
. Аналогично, для вашего примера вам даже не нужен изменяемый массив. У изменчивых объектов есть свое место, но я обычно стараюсь использовать неизменяемые, когда это имеет смысл; в качестве такового я использовал NSArray
.
Далее, вам никогда не нужно типизировать объекты при добавлении их в массив. Есть несколько причин, почему ваш пример не сработал:
Вы обращались к шестому (начиная с одного) объекту в массиве. Был ли экземпляр UIImageView
по этому индексу?
По какой-то причине точечная нотация для методов получения и установки работает только тогда, когда компилятор знает тип объекта, которому вы отправляете сообщение. Поскольку тип объекта, который выходит из массива, неясен во время компиляции, вы не можете использовать точечную нотацию. Вместо этого просто используйте старомодный синтаксис отправки метода Objective C («скобки и двоеточия»).
Наконец, это Core Graphics , а не Gore Craphics : следовательно, префикс CG
, а не GC
. Кроме того, -[UIImageView setCenter:]
занимает CGPoint
, а не CGRect
. Итак, функция, которую вы хотели, была CGPointMake
.
Удачи вам! Дайте мне знать, если это поможет прояснить некоторые вещи.