Apple Swift Code会产生错误

时间:2015-04-19 00:46:23

标签: swift xcode6.3

我最近升级到了XCode 6.3,我正在尝试根据Apple文档启动ODQuery并收到错误。

  

'Int'不能转换为'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或任何其他尝试的matchType与Swift 1.2函数不兼容?

如果有人知道发生了什么,或者您是否可以自己尝试使用6.3中的代码并获得相同的结果,请告知我们。

1 个答案:

答案 0 :(得分:1)

这与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)