Ho una funzione C mappata Swift definito come:stringa convertire Swift per UnsafeMutablePointer <Int8>
func swe_set_eph_path(path: UnsafeMutablePointer<Int8>) -> Void
Sto cercando di passare un percorso alla funzione e hanno provato:
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)
ma la linea del percorso [i] ottengo l'errore:
'subscript' is unavailable: cannot subscript String with a range of Int
swe_set_ephe_path(NSBundle.mainBundle().bundlePath)
né
swe_set_ephe_path(&NSBundle.mainBundle().bundlePath)
non funzionano né
Oltre a non lavorare, mi sento ci deve essere un modo migliore, meno contorto di fare questo. Le risposte precedenti su StackOverflow con CString non sembrano più funzionare. Eventuali suggerimenti?
prega, quando mostra il codice, mostrano sempre _real_ codice. La tua dichiarazione non è reale - non è una dichiarazione di funzione Swift valida e sospetto che il nome della funzione sia sbagliato. Non digitare il codice in Stack Overflow; copia e incolla il codice _real_. Sempre. – matt