О возвращаемом значении objectAtIndex - PullRequest
0 голосов
/ 09 октября 2011
    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

Ответы [ 2 ]

4 голосов
/ 09 октября 2011

Похоже, что mp_list само по себе nil, поэтому [mp_list objectAtIndex:0] возвращает nil (потому что сообщение nil возвращает nil).

0 голосов
/ 09 октября 2011

Не уверен, что это правильно, но в вашем NSLog вы печатаете объект долго? Из того, что я знаю, вы можете помещать объекты только в NSArray, вы не можете помещать в них примитивные типы. Так что это может быть что-то о данных, которые вы помещаете в свой массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...