我正在做一个小项目与地址簿,我有一个困难的时间找到这个问题的答案。
在Obj-C中,创建可变多值属性如下所示:
ABMutableMultiValueRef multiAddress = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);
但在斯威夫特,以同样的方式,我得到一个错误:
var multiAddress : ABMutableMultiValueRef = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType)
错误是“Int”不能转换为“ABPropertyType”。“我是不是犯了一些愚蠢的语法错误,或者这里到底有什么区别?”?
最佳答案
似乎ABPropertyType
是一个别名为UInt32
的类型,而像kABMultiDictionaryPropertyType
这样的所有常量都被定义为Int
。在Swift中,如果不转换,就不能用一个代替另一个——这应该可以做到:
var multiAddress = ABMultiValueCreateMutable(ABPropertyType(kABMultiDictionaryPropertyType))
这将为您提供
Unmanaged<ABMutableMultiValue>!
的实例。关于ios - 在Swift中无法获取ABMutableMultiValueRef,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26371142/