2016-08-03 7 views
0

Dieser Code, der in Xcode 7.0 einwandfrei lief, beschwert sich jetzt mit einem Fehler: Mehrdeutige Verwendung eines Index in Xcode 7.3.1 in der zweiten Zeile.Mehrdeutige Verwendung eines Index beim Zugriff auf ein 2-dimensionales Array überbrückt von Obj-C

let ar = sender.draggingPasteboard().propertyListForType("ABLinkedPeopleUIDsPboardType") as! NSArray? 

    let uniqueID = ar![0][0] as! String 

Ich verstehe, dass der NSArray auf seinem eigenen jetzt schlechte Praxis betrachtet wird, aber was muß ich dies zu umgehen tun, um zu kompilieren und ausführen?

+0

Haben Sie [this?] (Http://stackoverflow.com/questions/33642059/ambiguous-use-of-subscrip-in-swift) betrachtet –

Antwort

1

NSArray ist ein eindimensionales Array, aber Sie versuchen, es als ein zweidimensionales Array zu verwenden. Ich kann nicht sehen, wie das jemals kompilieren würde.

Sie müssen sofort in Swift-Typen übersetzen, damit Sie in Swift weiter programmieren können und nicht in einem Meer von zwangsextrahierten Optionals treiben.

Wie wäre:

if let ar = sender.draggingPasteboard().propertyListForType("ABLinkedPeopleUIDsPboardType") as? [[String]] { 
    // I'm assuming you're expecting to get back a two-dimensional array of Strings, or in the Obj-C realm, an NSArray of NSArrays of NSStrings 
    let uniqueID = ar[0][0] 
} 
else { 
    print("Property List for ABLinkedetc. is not a 2D String Array!") 
} 

Haydens Link die richtige allgemeine Diskussion, aber wenn Sie zu überbrück Obj C zu Swift neu sind, kann es schwierig sein, in Ihrem speziellen Fall anzuwenden.

+0

Funktioniert wie ein Charme! Danke für Ihre Hilfe. – iphaaw

Verwandte Themen