Xcode 7.1:带有retain或strong属性的属性必须是对象类型
我在一个swift文件中有这个变量:
var adbk: ABAddressBook!
这一直很好,直到Xcode 7.1。 现在它抱怨说:“保留或强属性的属性必须是对象类型。” 该错误在-Swift.h
文件中。 任何想法是什么改变了会导致这种情况,以及如何解决它?
如果Swift类声明了一些AdressBook属性,并且该类是Swift / ObjC混合项目的一部分,则会发生此错误。 Xcode然后生成Swift桥接头,其中此属性变成(非原子,强),它仅适用于对象,不适用于结构。
当我需要将Objective-C类的ABRecordRef传递给Swift类时,我遇到过类似的问题:Xcode不喜欢Swift中的ABRecordRef属性。 所以我最终将这个属性设置为私有的,这样它就不会被导出到桥头,并且在Swift类中添加新的方法来接收ABRecordRef:
class: PersonDetails {
private var selectedPerson: ABRecorfRef?
func setPerson(person: ABRecordRef) {
selectedPerson = person
}
}
然后你可以打电话
[personDetails setPerson: person];
来自Objective-C类。
ABAddressBook已弃用
@available(iOS, introduced=2.0, deprecated=9.0, message="use CNContactStore")
public typealias ABAddressBookRef = ABAddressBook
所以我认为你必须使用CNContactStore
链接地址: http://www.djcxy.com/p/29931.html上一篇: Xcode 7.1: Property with retain or strong attribute must be of object type