【发布时间】:2014-12-17 10:25:22
【问题描述】:
我创建了一个包含 JSON 数据的应用程序,我使用的代码如下:
-(void)viewWillAppear:(BOOL)animated
{
[self.webSpinner startAnimating];
NSURL * url=[NSURL URLWithString:[NSString stringWithFormat:@"http://www.janvajevu.com/webservice/specific_post.php?post_id=%@",self.postId]];
dispatch_async(kBgQueue, ^{
data = [NSData dataWithContentsOfURL: url];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
}
-(void)fetchedData:(NSData *)responsedata
{
if (responsedata.length > 0)
{
NSError* error;
self.webDictionary= [NSJSONSerialization JSONObjectWithData:responsedata options:kNilOptions error:&error];
self.webArray=[_webDictionary objectForKey:@"data"];
}
self.headingString=[self.webArray valueForKey:@"post_title"];
NSLog(@"Heading %@",self.headingString);
[self.webSpinner stopAnimating];
self.webSpinner.hidesWhenStopped=TRUE;
}
这里 Self.Webarray 是我的数组,self.headLabel 是我的标签,但是当我运行它时,显示类似“[NSArrayI length]: unrecognised selector sent to instance”的错误。
【问题讨论】:
-
请告诉
self.webArrayoutput.if self.webArray 是数组,那么您应该首先使用objectAtIndex获取其索引,然后获取valueForKey -
检查 self.webArray 是否包含值
-
@ChintaN-Maddy-Ramani self.webArray 就像 { "author_name" = "Parita Handa"; "post_date" = "2014-12-17 13:25:13"; “post_id”=2885; "post_title" = "\U0aaa\U0abe\U0a97\U0ab2\U0aae\U0abe\U0ab8\U0acd\U0aa4\U0ab0"; "post_title_slug" = "%e0%aa%aa%e0%aa%be%e0%aa%97%e0%aa%b2-%e0%aa%ae%e0%aa%be%e0%aa%b8%e0 %ab%8d%e0%aa%a4%e0%aa%b0"; “post_views”= 121; }
-
那么它的 NSDictionary 不是一个数组。你告诉 webArray 是你的数组,但输出看起来像字典。按照@nburk 的回答。并放置调试点并检查它在哪一行崩溃。
标签: ios objective-c iphone json uilabel