У меня есть функция C, отображаемая в Swift, определенная как:
func swe_set_eph_path(path: UnsafeMutablePointer<Int8>) -> Void
Я пытаюсь передать путь к функции и попытался:
var path = [Int8](count: 1024, repeatedValue: 0);
for i in 0...NSBundle.mainBundle().bundlePath.lengthOfBytesUsingEncoding(NSUTF16StringEncoding)-1
{
var range = i..<i+1
path[i] = String.toInt(NSBundle.mainBundle().bundlePath[range])
}
println("\(path)")
swe_set_ephe_path(&path)
но на пути [i] я получаю ошибку:
"индекс" недоступен: не может содержать индекс String с диапазоном Int
swe_set_ephe_path(NSBundle.mainBundle().bundlePath)
ни
swe_set_ephe_path(&NSBundle.mainBundle().bundlePath)
тоже не работают
Помимо того, что я не работаю, я чувствую, что это должен быть лучший, менее запутанный способ сделать это. Предыдущие ответы на StackOverflow с использованием CString больше не работают. Любые предложения?