gpt4 book ai didi

ios - 如何根据操作系统版本创建实例变量

转载 作者:可可西里 更新时间:2023-11-01 00:36:26 24 4
gpt4 key购买 nike

我如何根据 iOS verison 定义实例变量,例如CNContactStore 可用,因为 iOS9.0ABAddressBook9.0 中已弃用,但我想创建两个变量取决于iOS版本。我的方法是

if #available(iOS 9.0, *) {
var addressBookRef: ABAddressBook? = nil
} else {
var contactStore : CNContactStore? = nil
}

如果我在方法体内执行此操作,工作正常但我希望它在全局范围内定义并且可以在整个类中访问但如果我这样做会给我错误

@available(iOS 9.0, *)
var contactStore : CNContactStore? = nil

需要一些建议。我如何实现这一目标。我不知道如果我发布 @available(iOS 9.0, *),它会使我的应用程序在 iOS 8.x 或更低版本上崩溃吗?

最佳答案

在这种情况下,我会使用一个包装类来模拟 ABAddressBook 和 CNContactStore 的行为,因此所有对其方法的调用都应该通过此类完成。

您正在寻找的快速方法可能是这样的:

class ContactWrapper {
var contactBook: NSObject?


init() {
if #available(iOS 9, *) {
contactBook = CNContactStore.init()
} else {
contactBook = ABAddressBookCreate().takeRetainedValue() as? NSObject
}

}
}

关于ios - 如何根据操作系统版本创建实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38393008/

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