Я портирую одну из моих приложений iOS на Swift3/Xcode8. я встроил библиотеку C, которая ожидает параметр функции типа:Swift3 переходит на UnsafeMutablePointer
char ***
В Swift2.3 это было переведено в:
UnsafeMutablePointer<UnsafeMutablePointer<UnsafeMutablePointer<Int8>>>
Так я мог бы заявить, что указатель в моем быстром коде как то:
let myPointer = UnsafeMutablePointer<UnsafeMutablePointer<UnsafeMutablePointer<Int8>>>.alloc(1)
Это работало хорошо, пока я не обновлен до Xcode8 с Swift3, теперь я получаю ошибку компиляции:
Cannot convert value of type 'UnsafeMutablePointer<UnsafeMutablePointer<UnsafeMutablePointer<Int8>>>' to expected argument type 'UnsafeMutablePointer<UnsafeMutablePointer<UnsafeMutablePointer<Int8>?>?>!'
Могу ли я кому-нибудь помочь мне разобраться в изменениях в swift3? Что означает этот Необязательный, Необязательный, Неявный Unwrapped Необязательный (?) Означает в этом контексте и как я могу объявить указатель с этим типом?
Но я не получил какие-либо ошибки '' 'пусть _ = UnsafeMutablePointer >> выделить. (Емкость: 1)' '' –
@AlvinVarghese Я получаю ошибку, когда я передать его как пары к моей функции C, которая ожидает 'char ***' типа – Stitch