我有一个问题,将JSON数据存储到单个对象的数组中。看起来问题在于执行处理JSON请求的dispatch_asynch。当我在方法之前创建一个断点并且通过应用程序时,它似乎只是落入发送到dispatch_async的块。dispatch_async未被调用
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
NSError *error = nil;
NSURL *url = [NSURL URLWithString:@"http://sleepy-dusk-3603.herokuapp.com/companies.json"];
NSString *json = [NSString stringWithContentsOfURL:url
encoding:NSASCIIStringEncoding
error:&error];
NSLog(@"\nJSON: %@ \n Error: %@", json, error);
if(!error) {
NSData *jsonData = [json dataUsingEncoding:NSASCIIStringEncoding];
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData
options:kNilOptions
error:&error];
NSArray *tempArray = [NSArray arrayWithObjects:@"Call Support Desk", @"Call Genius Bar", nil];
for (NSString *name in [jsonDict valueForKeyPath:@"name"]) {
NSString *tempString = [[NSString alloc] initWithString:name];
Company *company = [[Company alloc] initWithName:tempString available_actions:tempArray];
[self addCompany:company];
我真的很感谢大家对这个问题的帮助和支持。
你把断点块里面?或者'dispatch_async'调用? – 2013-03-05 15:57:57
当我把断点放在块内时,一切似乎都正常(除了我的UITableView没有被某些原因送入数据)。当我将断点放在调用generate_default_data - >的原始方法上,该方法又调用dispatch_async调用时,事情就不起作用。 – Julian25 2013-03-05 16:07:40
基本上我想弄清楚为什么在dispatch_async块内数组的长度是2,这是假设......以及为什么它在块外面是0。 – Julian25 2013-03-05 16:12:02