ios - 支持 PencilKit 的较低操作系统版本

标签 ios swift ios11 ios13 pencilkit

所以我们有一个应用程序,它的最低目标是 iOS11。我们推出了 Pencil 套件(仅限 iOS13)。所以需要同时支持iOS11和13。只要我们在函数中使用存储属性,应用程序就会编译运行。

然而,当我们在函数中使用新变量时,即 PKToolPicker,我们会收到以下错误 Undefined symbol: _OBJC_CLASS_$_PKToolPicker

import UIKit
#if canImport(PencilKit)
import PencilKit
#endif

@available(iOS 13.0, *)
class ViewController: UIViewController, PKToolPickerObserver {

    #if canImport(PencilKit)
    private var drawing: PKDrawing!
    private var canvasView: PKCanvasView!
    #endif

    override func viewDidLoad() {
        super.viewDidLoad()
        #if canImport(PencilKit)
        if let window = parent?.view.window, let toolPicker = PKToolPicker.shared(for: window) {
            canvasView.becomeFirstResponder()
        }
        #endif
    }
}

帮忙吗?

最佳答案

您设置的 Deployment Target 是什么版本? 也许尝试将 #if canImport(PencilKit) 更改为 *if#available(iOS 13.0, )

关于ios - 支持 PencilKit 的较低操作系统版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57606722/

相关文章:

swift - 将 swiftc AST 输出发送到 stderr 的替代方法

ios - 应用程序 : continueUserActivity: restorationHandler: not called in iOS 11

ios - 滚动 UICollectionView 时动画 NSLayoutConstraint

objective-c - 如何以编程方式检测 iOS 中是否开启背光?

ios - MKMapView MKCircle 渲染一个半径太大的圆

swift - TabView 的 TabItem 的选定选项卡图像在 SwiftUI 中始终为蓝色

ios - 将触摸事件传递给 UICollectionViewCell 内容?

iOS 9 延迟位置更新不起作用

swift - GoogleSignIn - 在 IOS 11 中始终返回 "The user canceled the sign-in flow."

swift - 参数传递时在 Swift 4 中编译错误