RyJ*_*RyJ 7 xcode swift xcode7.1
我在swift文件中有这个变量:
var adbk: ABAddressBook!
Run Code Online (Sandbox Code Playgroud)
这一直很好,直到Xcode 7.1.现在它抱怨"具有retain或strong属性的属性必须是对象类型." 错误发生在-Swift.h文件中.知道改变了什么会导致这种情况以及如何解决它?
如果 Swift 类声明了某些 AdressBook 属性,并且该类是混合 Swift/ObjC 项目的一部分,则会出现此错误。然后 Xcode 生成 Swift 桥接标头,其中此属性变为 (nonatomic, Strong),仅适用于对象,不适用于结构。
当我需要将 ABRecordRef 从 Objective-C 类传递到 Swift 类时,我遇到了类似的问题:Xcode 不喜欢 Swift 中的 ABRecordRef 属性。所以我最终将该属性设为私有,以便它不会导出到桥接标头,并在 Swift 类中添加新方法来接收 ABRecordRef:
class: PersonDetails {
private var selectedPerson: ABRecorfRef?
func setPerson(person: ABRecordRef) {
selectedPerson = person
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以打电话
[personDetails setPerson: person];
Run Code Online (Sandbox Code Playgroud)
来自 Objective-C 类。
| 归档时间: |
|
| 查看次数: |
1550 次 |
| 最近记录: |