0
不知道這是否是該問題的正確標題或者不是。通常,我有一個字典數組,並且正在迭代字典,傳遞一個有時會被執行的塊未來(異步)並將結果保存在字典中。這裏是我的方法:使用異步塊對NSArray進行迭代
- (void)elcImagePickerController:(ELCImagePickerController *)picker didFinishPickingMediaWithInfo:(NSArray *)info {
NSLog(@"%@", info);
NSMutableDictionary *images = [NSMutableDictionary dictionaryWithCapacity:[info count]];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
for (NSDictionary *dict in info) {
NSURL *assetURL = [dict objectForKey:UIImagePickerControllerReferenceURL];
[library assetForURL:assetURL
resultBlock:^(ALAsset *asset) {
NSString *filename = asset.defaultRepresentation.filename;
UIImage *image = [dict objectForKey:UIImagePickerControllerOriginalImage];
[images setObject:filename forKey:image];
}
failureBlock:^(NSError *error) {
[SVProgressHUD dismissWithError:@"Error occured."];
}
];
}
NSLog(@"%@", images);
[library autorelease];
[self dismissImagePickerVC];
}
Ofcourse,在這個方法結束時,圖像是空的,但我的問題是,如何才能得到一個電話回來時,一切爲每次迭代塊已被執行? Thansk
這同我嘗試做不同的... – 0xSina 2012-03-14 10:43:09
我需要找到資產之前,我通過他們列舉...... – 0xSina 2012-03-14 10:47:13
@PragmaOnce *您找到*資產通過*使用'ALAssetsLibrary'枚舉*通過他們。當然,如果你願意的話,你可以將它們存儲在你選擇的容器中,以便再次遍歷它們。您也可以在看到'nil'時進行回調,並在塊中計算它們的數量。一旦數字達到字典中的項目數量,就知道所有回調都已完成。 – dasblinkenlight 2012-03-14 10:56:51