【发布时间】:2021-03-19 15:14:15
【问题描述】:
Xcode 11.3.1
使用未声明的类型“PHAccessLevel”
“PHPhotoLibrary”类型的值没有成员“presentLimitedLibraryPicker”
只有在我尝试针对实际设备进行编译时才会出现此错误。已在 iOS 14 和 iOS 13 设备上进行了尝试。代码用模拟器编译。 尝试清理建筑,清理衍生数据并关闭并重新打开项目。但没有运气
import Photos
import PhotosUI
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
if #available(iOS 14, *) {
let accessLevel: PHAccessLevel = .readWrite
let authorizationStatus = PHPhotoLibrary.authorizationStatus(for: accessLevel)
switch authorizationStatus {
case .limited:
var testVc = UIViewController()
PHPhotoLibrary.shared().presentLimitedLibraryPicker(from: testVc)
//callBack(authorizationStatusAuthorised)
case .authorized:
//callBack(authorizationStatusAuthorised)
var te = ""
default:
//callBack("")
var test = ""
}
}
}
}
【问题讨论】:
-
您需要 Xcode 12 并针对 iOS 14+。 developer.apple.com/documentation/photokit/phphotolibrary/…
-
@Rob 那么模拟器是怎么工作的呢?
-
我不知道。但是文档是明确的,即这是 iOS 14 的功能。您应该使用 Xcode 12 来使用 iOS 14 API 构建应用程序。
-
无关,但我建议不要“展示”来自
viewDidLoad的任何内容。你真的应该推迟到viewDidAppear... -
@Rob 是的,我知道。这只是我为复制问题而创建的一个虚拟项目,因为我无法在此处发布原始代码。我们的 Jenkins 构建正在使用 Xcode 11。所以直接切换到 12 有点复杂。