我有一個問題,將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