私のプロジェクトでは、SwiftとObjective Cの両方を使用しています。Objective Cで書かれたシングルトンを、NSDictionary型のプロパティとして持っています。[NSObject:AnyObject]をチェックする! SwiftのNSNullです。
@property(nonatomic, strong) NSDictionary *currentDictionary;
これは私のプロジェクト全体で使用されている古いクラスです。私は私が直面しています問題はcurrentDictionaryがサーバからのデータを使用して設定されていることである。この
if let dict = DataManager.sharedManager().currentDictionary
{
//
}
ようスウィフトクラスでこのクラスを使用しようとしています。時には、これはObjective Cのクラスでは
かもしれないが、私は、次のチェック
if ([currentDictionary isKindOfClass: [NSNull class]])
{
// Do nothing
}
で状況を処理することができますが、私はスウィフトで同様のチェックを実装する方法を確認していません。 nsnullをは
を「常に失敗した 『『無関係なタイプに』私は、次のif let data = DataManager.sharedManager().currentDictionary as? NSNull
{
return
}
を試みたが、それは動作しませんし、また、私は、コンパイラの警告を取得:
[ANYOBJECT NSObjectの]」からキャストを』!
これはdicitonary内のNull値が 'AnyObject'であるため、チェックしたいタイプにキャストしようとするので、これとは異なります。
することは、誰かがあなたがcurrentDictionary
天気を検証したい場合は、使用することができ、nil
かではない、適切
「NSDictionary」は、決して*** NSNull型でなければなりません。その内容は辞書自体ではありません。 – luk2302
この投稿はおそらくあなたのために便利ですhttp://stackoverflow.com/questions/24026609/detect-a-null-value-in-nsdictionary – HDT
@ luk2302 ..はい、そうすべきではありません。私は同じことをサーバー側に伝えました。しかし、私はクライアントで安全性チェックを追加したいと思います。 – humblePilgrim