我的代码是这样的: (此处名称为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 )
。那么我的下一步是将正确的字符串提取到另一个字符串变量中,因为我需要执行字符串比较,字符串追加等操作。任何帮助将不胜感激。
答案 0 :(得分:2)
检查您正在使用的方法的目的。
在-valueForKey:
上调用 NSArray
返回一个数组,其中包含使用每个数组对象上的键调用valueForKey:
的结果。
所以你的对象不是字符串,它是一个字符串数组。
log语句显示括号,因为这是NSArray
的日志表示法。类似地,{}括号是NSDictionary
的日志符号。
要处理结果字符串,请使用循环。
for (NSString *aString in anArray) {
NSLog(@"%@ is an %@", aString, NSStringFromClass([aString class]);
}