我使用github的Project,它是一個圖像選擇器。 自ios7以來,我不得不做出一個非常小的改變,使您的相冊中的預覽圖像再次顯示,但是現在當您離開選擇器並重新進入時,所選照片(2/5)重置爲0/5即使我選擇了照片。我怎樣才能解決這個問題?線程問題在ios 7上的行爲不同
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)
似乎要永遠更新ui,即使使用dispatch_async(dispatch_get_main_queue()
重新加載其中的ui。當我註釋掉dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)
時,圖片會立即加載,但其他事情會因爲隊列而中斷。
這裏是代碼片段與dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)
我的代碼改變我改變註釋掉
AGIPCAssetsController.m:
- (void)loadAssets
{
[self.assets removeAllObjects];
__ag_weak AGIPCAssetsController *weakSelf = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
__strong AGIPCAssetsController *strongSelf = weakSelf;
@autoreleasepool {
[strongSelf.assetsGroup enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
if (result == nil)
{
return;
}
AGIPCGridItem *gridItem = [[AGIPCGridItem alloc] initWithImagePickerController:strongSelf.imagePickerController asset:result andDelegate:strongSelf];
if (strongSelf.imagePickerController.selection != nil &&
[strongSelf.imagePickerController.selection containsObject:result])
{
gridItem.selected = YES;
}
[strongSelf.assets addObject:gridItem];
}];
}
dispatch_async(dispatch_get_main_queue(), ^{
[strongSelf reloadData];
});
});
[strongSelf reloadData];
}
問題是什麼? –
@Benoit我想知道如何更新選擇器,知道選擇了多少照片。它正確地做到了這一點,然後我刪除了調度,但需要刪除調度才能正確地在ios7中工作 – BluGeni
我試過這個類,但即使在使用修補程序時它也不會顯示任何圖像。您可能想深入瞭解這裏的根本問題,您想要做的是解決方法,而不是正確的解決方法。 – lawicko