如何从NSArray中获取包含括号的字符串

时间:2013-04-18 17:11:07

标签: objective-c nsstring 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 )。那么我的下一步是将正确的字符串提取到另一个字符串变量中,因为我需要执行字符串比较,字符串追加等操作。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

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

-valueForKey:

上调用

NSArray

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

所以你的对象不是字符串,它是一个字符串数组。 log语句显示括号,因为这是NSArray的日志表示法。类似地,{}括号是NSDictionary的日志符号。

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

for (NSString *aString in anArray) {
    NSLog(@"%@ is an %@", aString, NSStringFromClass([aString class]);
}