0
我最近升级到XCode 6.3,我试图根据Apple文档启动一个ODQuery并收到错误。苹果Swift代码创建错误
'诠释' 是无法转换为 'ODMatchType'
我使用苹果自己的文档Open Directory Programming Guide
这里是我的银行代码:
var err:NSError?
var session = ODSession.defaultSession()
var node = ODNode(session: session, name: "/Local/Default", error: &err)
var query = ODQuery(node: node, forRecordTypes: kODRecordTypeUsers, attribute: kODAttributeTypeRecordType, matchType: kODMatchContains, queryValues: "darren", returnAttributes: kODAttributeTypeStandardOnly, maximumResults: 10, error: &err)?
这个问题似乎是否kODMatchContains或任何其他被尝试的matchType与Swift 1.2函数不兼容?
如果有人知道发生了什么,或者您可以自己尝试6.3中的代码并获得相同的结果,请告诉我。
这是从我的投诉确实没有什么不同的位置:http://stackoverflow.com/questions/24108827/swift-numerics-and- cgfloat-cgpoint-cgrect-etc ODMatchType是UInt32,但'kODMatchContains'是一个Int。因此,您不能使用预期的另一个,因为数字类型之间不存在隐式强制;你必须强迫_explicitly_预期的类型。当API似乎故意将错误的类型交给你时,它尤其令人生气。 – matt
是的,这是文档的状态,但是这会在我的所有测试中产生错误。 – Ecks
它会产生_different_错误。我回答了你问的问题。很显然,你必须在整个事情结束时删除那个奇怪的问号。它曾经在那里做过一个谜...... – matt