Mein Projekt verwendet sowohl Swift als auch Objective C. Ich habe ein Singleton in Objective C geschrieben, das als eine Eigenschaft des Typs NSDictionary.Überprüfen, ob [NSObject: AnyObject]! ist NSNull in Swift
Dies ist eine alte Klasse, die während meines gesamten Projekts verwendet wird. Ich versuche, diese Klasse in einer Swift-Klasse zu verwenden, wie dies
if let dict = DataManager.sharedManager().currentDictionary
{
//
}
Das Problem, das ich bin vor ist, dass currentDictionary gesetzt wird vom Server unter Verwendung von Daten. Manchmal könnte dies
In Objective-C-Klassen sein, ich die Situation mit der folgenden Kontroll
if ([currentDictionary isKindOfClass: [NSNull class]])
{
// Do nothing
}
Aber ich bin nicht sicher umgehen kann, wie man eine ähnliche Prüfung in Swift zu implementieren. Ich habe versucht, die folgenden
if let data = DataManager.sharedManager().currentDictionary as? NSNull
{
return
}
Aber es nicht und ich erhalte Warnung einen Compiler auch funktioniert:
„Cast von‚[NSObject: ANYOBJECT]‘an unabhängigem Typ‚NSNull‘immer versagt“
Dies unterscheidet sich von der Überprüfung auf Null-Werte innerhalb der Dicitonary, wie sie AnyObject sein werden und ich kann versuchen, sie in den Typ zu werfen, die ich überprüfen möchte.
Kann jemand bitte alle Hinweise geben, wie diese Situation richtig
Das 'NSDictionary' sollte *** *** niemals vom Typ' NSNull' sein. Der Inhalt kann sein, aber nicht das Wörterbuch selbst. – luk2302
Dieser Beitrag ist wahrscheinlich nützlich für Sie http://stackoverflow.com/questions/24026609/detect-a-null-value-in-nsdictionary – HDT
@ luk2302 .. Ja, sollte es nicht sein. Ich habe dasselbe mit der Serverseite mitgeteilt. Aber ich möchte auch einen Sicherheitscheck beim Kunden hinzufügen. – humblePilgrim