2017-11-19 11 views
-1

Ich bin gerade dabei, Swift zu erkunden und meine Objective-C-Klassen nacheinander zu konvertieren. Jetzt renne ich in die folgenden. Betrachten Sie meinen obj-C-Code unterSwift cast zu Array und Wörterbuch

id messageLinks=thismessage.links; 
NSDictionary *something = messageLinks[3]; 
NSString *messageLink =something[@"Href"]; 

Diese message.links ist ein Array, mit Coredata als Transform gespeichert. Wie Sie sehen können, brauche ich das vierte Objekt, das ein NSDictionary ist, von dem ich den Wert für einen Schlüssel mit dem Namen "Href" benötige.

Die Konvertierung in Swift verursacht mir eine Menge Ärger. Zuerst muss ich die transformable message.links auf ein Array werfen. Geführt durch Fehler und Fix Vorschläge von Xcode, landete ich tun

let messageLinks = message.links as? Array<Any> 

Aber dann komme ich in Schwierigkeiten Definition der Zwischen ‚etwas‘ als Wörterbuch.

Ich weiß, das ist ziemlich elementar, aber ich hoffe, jemand unter Ihnen könnte dies für mich buchstabieren.

danke voraus.

Antwort

1

Versuchen Sie folgendes:

if let linksDict = messageLinks[3] as? [String: Any] { 
    let messageLink = linksDict[“Href”] as? String 
}