ich eine C-Funktion zu Swift abgebildet haben wie folgt definiert:Swift convert String UnsafeMutablePointer <Int8>
func swe_set_eph_path(path: UnsafeMutablePointer<Int8>) -> Void
ich einen Weg zur Funktion zu übergeben bin versucht, und haben versucht:
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)
aber auf der Weg [i] Zeile bekomme ich den Fehler:
'subscript' is unavailable: cannot subscript String with a range of Int
swe_set_ephe_path(NSBundle.mainBundle().bundlePath)
noch
swe_set_ephe_path(&NSBundle.mainBundle().bundlePath)
nicht funktionieren entweder
Neben nicht funktioniert, ich fühle mich hat es doch ein besserer sein, weniger gewundener Weg, dies zu tun. Vorherige Antworten auf StackOverflow mit CString scheinen nicht mehr zu funktionieren. Irgendwelche Vorschläge?
Bitte, wenn der Code zeigt, zeigen immer _REAL_werte Code. Ihre Deklaration ist nicht real - es ist keine gültige Swift-Funktionsdeklaration, und ich vermute, dass der Funktionsname falsch ist. Code nicht in Stapelüberlauf eingeben; Kopieren und fügen Sie _real_ code ein. Immer. – matt