私はgithubからこのプロジェクトを使用しています。これは画像ピッカーです。ios7 以降、アルバムのプレビュー画像を再度表示するために非常に小さな変更を加える必要がありましたが、その変更により、ピッカーを離れて戻ってくると、選択した写真 (2/5) が 0/5 にリセットされます。私は写真を選択していますが。どうすればこれを修正できますか?
内部のUIをリロードしてdispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)
も、UIを更新するのに永遠にかかるようです。dispatch_async(dispatch_get_main_queue()
コメントアウトするとdispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)
、写真はすぐに読み込まれますが、キューに依存する他のものが壊れます。
これは、 I changed with the code i changed がコメント化されたコード スニペットです。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];
}