NSLog(@" --- object id = %ld --- ",
(long) [mp_list objectAtIndex : 0]);
target_coordinate_2D = [[mp_list objectAtIndex : 0] coordinate];
// Some test code here which verifies that target_coordinate_2D
// gets assigned a valid "coordinate" value.
[mapView addAnnotation : [mp_list objectAtIndex : 0]];
Рассмотрим 3 приведенных выше оператора:
Согласно документации, метод NSArray "objectAtIndex" должен возвращать объект.Насколько я понимаю, возвращаемое значение представляет собой числовой указатель на объект.
Но я получил вот что:
--- object id = 0 ---
'NSInvalidArgumentException', reason: '-[... addObject:]: attempt to insert nil'
Мои вопросы:
1
Почему «идентификатор объекта» равен нулю?Поскольку target_coordinate_2D присвоено правильное значение, [mp_list objectAtIndex: 0] действительно должен быть действительным объектом с допустимым свойством «координаты».
2
В последнем утверждении я хочу добавитьобъект в mp_list для mapView.Исключение NS, выдаваемое симулятором, согласуется с тем фактом, что «[mp_list objectAtIndex: 0]» действительно равен нулю.Так что должно быть что-то, что я пропустил в NSArray.Что нужно сделать, чтобы назначить объект массиву из другого массива?
Надеюсь, что кто-то, кто знает в этой области, может помочь ...
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html