Я недавно обновился до XCode 6.3, и я пытаюсь инициировать ODQuery в соответствии с документацией Apple и получить сообщение об ошибке.Apple Swift Code создает ошибку
'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 и получить те же результаты, сообщите мне.
Это на самом деле не отличается от моей жалобы здесь: http://stackoverflow.com/questions/24108827/swift-numerics-and- cgfloat-cgpoint-cgrect-etc ODMatchType - это UInt32, но 'kODMatchContains' является Int. Поэтому вы не можете использовать ту, где ожидаются другие, потому что не существует скрытого принуждения между числовыми типами; вы должны принуждать _explicitly_ к ожидаемому типу. Это особенно сходит с ума, когда API, похоже, намеренно передает вам неправильный тип для начала. – matt
Да, это то, что говорится в документации, но это приводит к ошибке во всех моих тестах. – Ecks
Производит ошибку _different_. Я ответил на вопрос, который вы задали. Очевидно, тогда вы должны удалить этот странный знак вопроса в конце всего. То, что это когда-либо делало, таинственно ... – matt