1

我的代码是这样的:(这里的名称是 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 )所以我下一步将正确的字符串提取到另一个字符串变量中是什么,因为我需要执行字符串比较、字符串附加等操作。任何帮助将不胜感激。

4

1 回答 1

2

检查您使用的方法的目的。

-valueForKey:当被召唤时NSArray

返回一个数组,其中包含valueForKey:在每个数组对象上使用 key 调用的结果。

所以你的对象不是一个字符串,它是一个字符串数组。日志语句显示括号,因为那是NSArray. 同样,{} 括号是NSDictionary.

要处理结果字符串,请使用循环。

for (NSString *aString in anArray) {
    NSLog(@"%@ is an %@", aString, NSStringFromClass([aString class]);
}
于 2013-04-18T18:03:02.570 回答