2013-04-18 3 views
1

мой код выглядит так: (здесь имя NSArray и объект также массив, который передается в качестве параметра функции)Как получить строку из NSArray которая содержит кронштейн

[name addObject:object]; 
NSlog(@"%@",name); 

Когда я сделать это, то я получил выход, как это:

{name:\"Malay Basu"\ date:\"2013-04-18"\ senderId:\"24" receiverId:\"25"} 

Теперь, когда я извлечения имя поля из массива в строку, то я получил строку как:

NSString *temp = [name valueForKey:@"name"]; 
output: `(Malay Basu)` 

Теперь, когда я делать операции со строк, как добавляемая строкой или сравнение строки, то я получил ошибку, как:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'-[__NSArrayI isEqualToString:]: unrecognized selector sent to instance 0x16635ed0' 

Чтобы удалить эту ошибку, мне нужна эта строка без кронштейна, как дисплеи выше. Так что мне нужно Malay Basu вместо (Malay Basu). Так что это мой следующий шаг для извлечения правильной строки в другую строковую переменную, потому что мне нужно делать операции, такие как сравнение строк, добавление строк. Любая помощь будет оценена.

+2

вы использовали 'nsarray' мышления как' nsstring' –

+0

попробовать 'NSLog (@ "% @", [[имя valueForKey: @ "имя"] Classname]);' –

+0

Для получения только 'малайский Basu' Попробуйте 'NSLog (@" Ваше имя:% @ ", [temp objectAtIndex: 0]);' –

ответ

2

Проверьте, какие методы вы используете.

-valueForKey: при вызове на NSArray

Возвращает массив, содержащий результаты вызова valueForKey: с помощью ключа на каждом из объектов массива.

Таким образом, ваш объект не является строкой, это массив строк. Оператор журнала показывает скобки, потому что это обозначение журнала для NSArray. Аналогично {} скобки представляют собой нотацию журнала для NSDictionary.

Для обработки строк результата используйте цикл.

for (NSString *aString in anArray) { 
    NSLog(@"%@ is an %@", aString, NSStringFromClass([aString class]); 
} 
Смежные вопросы