我在我的应用程序中使用了ELCImagePickerController。 但是当我们第一次启动我们的应用程序并且在图片库时,它会要求访问用户位置,如果我们不允许访问用户位置,那么它会在UIAlertView中给出错误,并且它不会显示图片库。ELCImagePickerController不允许访问用户位置
但之后,如果我们去设置应用程序 - >位置服务 - > [打开开关为我们的应用程序的访问位置],然后启动应用程序 - >去画廊页面 - >我们可以在我们的应用程序中显示图片库。
所以我的问题是我们如何显示图像库与ELCImagePickerController位置服务关闭我们的应用程序或用户不允许访问我们的应用程序的位置。 ELCImagePickerController可以下载这个LINK
然后找ELCAlbumPickerController.m文件,然后去查看有没有再加载这会导致错误的警报,当用户访问位置关闭,
dispatch_async(dispatch_get_main_queue(),^
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// Group enumerator Block
void (^assetGroupEnumerator)(struct ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop)
{
if (group == nil)
{
return;
}
[self.assetGroups addObject:group];
// Keep this line! w/o it the asset count is broken for some reason. Makes no sense
NSLog(@"count: %d", [group numberOfAssets]);
// Reload albums
[self performSelectorOnMainThread:@selector(reloadTableView) withObject:nil waitUntilDone:YES];
};
// Group Enumerator Failure Block
void (^assetGroupEnumberatorFailure)(NSError *) = ^(NSError *error) {
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[NSString stringWithFormat:@"Album Error: %@", [error description]] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
NSLog(@"A problem occured %@", [error description]);
};
// Enumerate Albums
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:assetGroupEnumerator
failureBlock:assetGroupEnumberatorFailure];
[library release];
[pool release];
});
,它不会加载图片来自资产,但是当我加载ELCImagePickerController时我想再次请求访问权限,我怎么能做到这一点 –