Это может быть связано с тем, что в некоторых классах SDK уже есть метод / свойство с именем address
, и оно возвращает NSData *
.
NSArray
'objectAtIndex:
возвращает объект типа id
, и компилятор не знает, что это ваш пользовательский класс, для которого определено address
для возврата NSString *
. Когда он пытается сопоставить селектор address
, он берет тот из SDK, а не ваш.
Однако вы можете привести возвращенный объект к вашему классу и вызвать метод address
:
[(YourClass *)[LocationData objectAtIndex:rowDisplay] address];
Вы не видите предупреждение при выводе address
в NSLog
, поскольку формат %@
принимает и NSString *
, и NSData *
(для классов, отличных от NSString
, фактически выводится результат description
метод, который возвращает NSString *
).