objective-c - for迴圈裡,先執行完block程式碼再執行下一次迴圈.
世界只因有你
世界只因有你 2017-04-25 09:03:28
0
0
406

求助各路前輩,各路大神
我現在做一個通訊錄,我的思路是這樣的,因為通訊錄裡面是分部門的,如"人事部",“研發部”等,depList這個數組存的就是參數,key就是參數。例如:每次把「人事部」傳入這個參數,進行請求,回調函數就會回傳「人事部」的成員的數據,如此類推,每次需要傳入不同部門的參數,我把每個部門的資料返回來,加入可變數組「save1」裡面,然後最後寫入plist檔案。用tableview展示的時候再讀取plist來展示。
我現在遇到的問題是,經過多次循環後,得到了重複的數據,例如得到了兩組“人事部的數據”,我想應該是回調的時候,線程那裡出問題了。

求前輩們指點。

save1 = [NSMutableArray array];
//    __block int k = 0;
    for ( int i = 0; i < deptList.count; i++) {
        __block NSString *key = deptList.allKeys[i];
        NSLog(@"key%@",key);
            [RMIUserManager getContacts:key callBack:^(NSDictionary *resultDic) {
//                dispatch_async(dispatch_get_main_queue(), ^{
                    [save1 addObject:[resultDic objectForKey:@"contactInfo"]];
                    NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
                    // 拼接文件路径
                    NSString *path = [doc stringByAppendingPathComponent:@"contacts.plist"];
                    [save1 writeToFile:path atomically:YES];
//                        });
            }];
        
    }
世界只因有你
世界只因有你

全部回覆(0)
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板