Apple Swift 代码创建错误
Apple Swift Code creates an error
我最近升级到 XCode 6.3,我正尝试根据 Apple 文档启动 ODQuery,但出现错误。
'Int' is not convertible to 'ODMatchType'
我使用的是 Apple 自己的文档 Open Directory Programming Guide
这是我的 Swift 代码:
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 或尝试过的任何其他匹配类型与 Swift 1.2 函数不兼容?
如果有人知道发生了什么,或者如果您可以自己尝试 6.3 中的代码并获得相同的结果,请告诉我。
这与 Swift 1.2 无关。 Swift 一直都是这样。 matchType:
参数需要是 ODMatchType。将其强制转换为 ODMatchType,如下所示:
... matchType: ODMatchType(kODMatchContains), ...
然后该行将编译正常(一旦您删除末尾的问号)。
看来我得给你拼出来了...
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: ODMatchType(kODMatchContains), queryValues: "darren", returnAttributes: kODAttributeTypeStandardOnly, maximumResults: 10, error: &err)
我最近升级到 XCode 6.3,我正尝试根据 Apple 文档启动 ODQuery,但出现错误。
'Int' is not convertible to 'ODMatchType'
我使用的是 Apple 自己的文档 Open Directory Programming Guide
这是我的 Swift 代码:
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 或尝试过的任何其他匹配类型与 Swift 1.2 函数不兼容?
如果有人知道发生了什么,或者如果您可以自己尝试 6.3 中的代码并获得相同的结果,请告诉我。
这与 Swift 1.2 无关。 Swift 一直都是这样。 matchType:
参数需要是 ODMatchType。将其强制转换为 ODMatchType,如下所示:
... matchType: ODMatchType(kODMatchContains), ...
然后该行将编译正常(一旦您删除末尾的问号)。
看来我得给你拼出来了...
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: ODMatchType(kODMatchContains), queryValues: "darren", returnAttributes: kODAttributeTypeStandardOnly, maximumResults: 10, error: &err)