gpt4 book ai didi

ios - 为什么授予权限后图库中的照片不会出现?

转载 作者:行者123 更新时间:2023-11-28 08:36:58 25 4
gpt4 key购买 nike

我正在使用这个 GitHub project's controller用于在 UICollectionView 中显示用户的照片库。那里一切都很好,但除了一个:如果我第一次运行它,它会询问我有关权限的问题。我接受它,但之后我无法从画廊获取我的图像。它什么都不显示。

但是当我关闭我的应用程序并再次运行时,它可以从图库中获取我的照片。所以,这个问题只是在第一次启动时出现。

谁能帮帮我,我该如何解决?

更新

我想,这个观察者的工作不正确:

func photoLibraryDidChange(changeInstance: PHChange) {
let changeDetails = changeInstance.changeDetailsForFetchResult(images)

self.images = changeDetails!.fetchResultAfterChanges
dispatch_async(dispatch_get_main_queue()) {
// Loop through the visible cell indices
let indexPaths = self.imagesCollectionView.indexPathsForVisibleItems()
for indexPath in indexPaths as [NSIndexPath]! {
if changeDetails!.changedIndexes!.containsIndex(indexPath.item) {
let cell = self.imagesCollectionView?.cellForItemAtIndexPath(indexPath) as! ImagesCollectionViewCell
cell.imageAsset = changeDetails!.fetchResultAfterChanges[indexPath.item] as? PHAsset
}
}
}
}

所以,我授予权限,但它不显示我的照片。为此,我需要重新启动我的应用

如果您需要任何代码 - 我可以分享。但我使用的是上面附加的 github Controller 。

最佳答案

因为当您重新启动应用程序时它可以正常工作,所以听起来您可能在显示 View Controller / Collection View 的同时请求权限。问题在于,一旦用户选择允许您的应用访问他们的照片, Collection View 就不知道要重新加载。在 PHPhotoLibrary.requestAuthorization 回调中,您需要告诉您的 View Controller / Collection View 在他们授权您的应用程序后重新加载。下面的小例子:

PHPhotoLibrary.requestAuthorization { status in
switch status {
case .Authorized:
/* RELOAD COLLECTION VIEW HERE */
case .Restricted:
<#your code#>
case .Denied:
<#your code#>
default:
// place for .NotDetermined - in this callback status is already determined so should never get here
break
}

关于ios - 为什么授予权限后图库中的照片不会出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37438420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com