NSArray 无法识别我放入其中的内容并给我错误

Posted

技术标签:

【中文标题】NSArray 无法识别我放入其中的内容并给我错误【英文标题】:NSArray unrecognized what I put inside it and give me error 【发布时间】:2012-06-29 14:28:13 【问题描述】:

我正在使用 NSArray 并将我使用 json_encode 检索到的字符串放入其中 当它是纯文本时它可以工作,但如果它像我的图像一样不起作用并给我这个错误

我也尝试使用 NSMutableArray 但同样的问题,所以如果是这些 "\r\n" .. 等的问题,如何将其转换为纯文本?

这是我使用的代码:

NSError *er;
    SBJsonParser *parser = [[SBJsonParser alloc] init];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://localhost:8888/ost.php"]];
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *json_string = [[NSString alloc]initWithData:response encoding:NSUTF8StringEncoding];
    content = [parser objectWithString:json_string error:&er];
    NSLog(@"%@",json_string);     
NSLog(@"%d",[content count]);
    NSLog(@"%@",[content objectAtIndex:0]);

【问题讨论】:

代码在哪里?这看起来像是与内存相关的问题。 0 = " : \n \nmediafire.com/?qp0srwq71lccsx1\" href=\"mediafire.com/?qp0srwq71lccsx1\">mediafire.com/?qp0srwq71lccsx1</a> \n \nhttp://www .youtube.com/watch?v=rU9RXYeeR_A"; "post_content" = "\U0644\U062a\U062d\U0645\U064a\U0644\U0645\U0644\U0641\U0627\U062a\U0627\U0644\U0628\U0631\U0646\U0627\U0645\U062c:\n\nmediafire.com/?qp0srwq71lccsx1\" href=\"mediafire.com/?qp0srwq71lccsx1\">mediafire.com/?qp0srwq71lccsx1</a> \n \nhttp://www.youtube.com/watch?v=rU9RXYeeR_A"; 亲爱的它不是有效的 json,你可以通过 jsonlint.com 检查你的 jason 【参考方案1】:

我看到一个 NSDictinoary 错误,它使用 objectForKey 而不是 objectAtIndex

你的问题很可能是:

NSLog(@"%@",[content objectAtIndex:0]);

检查content 的类型,这可能是一本字典,它被要求提供索引处的对象。

【讨论】:

这肯定是日志报错的原因。即使 OP 将 NSArray 用于 json 字符串,也有一个 NSDictionary 在某处导致问题。 但我没有使用任何 NSDictionary,我只是使用 nsarry。 日志中的第三行显然是一个 NSDictionary 被要求提供 objectAtIndex "无法识别的选择器发送到实例变量..." 是的,我可以看到它,但我确信 NSDictionary 没有用。 您正在使用字典。你确定不是这样,但你仍然

以上是关于NSArray 无法识别我放入其中的内容并给我错误的主要内容,如果未能解决你的问题,请参考以下文章

Pyopengl 给我价值错误无法识别问题

C & MinGW:Hello World 给我错误“程序太大而无法放入内存”

无法访问静态函数内部的私有变量

RandomizedSearchCV 溢出错误:无法将“int”放入索引大小的整数中

在 python 中使用 quit() [重复]

错误无法打开文件'kernel32.lib'