0
我正在使用以下代码尝试从iTunes API获取trackName。它应该从这个链接,例如: https://itunes.apple.com/search?term=EMINEM&entity=song&limit=3 它使返回什么(标签是空白,这是不是因为标签太小)iOS json无法从iTunes API获取数据
- (void)pressSearchKey {
NSInteger numberOfResults = 3;
NSString *searchString = self.keyboard.textField.text;
NSString *encodedSearchString = [searchString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *finalSearchString = [NSString stringWithFormat:@"https://itunes.apple.com/lookup?term=%@&entity=song&limit=%ld",searchString,numberOfResults];
NSURL *searchURL = [NSURL URLWithString:finalSearchString];
dispatch_queue_t iTunesQueryQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(iTunesQueryQueue, ^{
NSError *error = nil;
NSData *data = [[NSData alloc] initWithContentsOfURL:searchURL options:NSDataReadingUncached error:&error];
if (data && !error) {
NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSArray *array = [JSON objectForKey:@"results"];
NSArray *arrayTracks;
for (NSDictionary *bpDictionary in array) {
arrayTracks = [bpDictionary objectForKey:@"trackName"];
}
dispatch_async(dispatch_get_main_queue(), ^{
self.keyboard.firstLabel.text = [arrayTracks objectAtIndex:1];
});
}
});
}
这是什么输出,当您登录名为'JSON'字典? – rebello95 2014-11-09 05:35:18
@ rebello95我无法登录,因为这是一个扩展名(自定义键盘),但我可以为它设置一个标签的文本。当我做'self.keyboard.firstLabel.text = [JSON objectForKey:@“结果”];'它甚至没有改变文字。并且这个'self.keyboard.firstLabel.text = [NSString stringWithFormat:@“%@”,JSON];'只是做了标签空白 – abc123abc 2014-11-09 05:41:07
尝试在该行上面放置一个断点并检查元素以查看其内容。我假设反序列化失败 – rebello95 2014-11-09 05:42:49