/ /フィールドタイプがAnyであるかどうかを確認する方法NSNullなし-swift、swift3

フィールドの種類を確認する方法Any?はありませんo NSNull - swift、swift3

私は実際にXcode8.1でSwift3を使用してJsonオブジェクトを解析しようとしています。 これは私のコードです:

if let objData = objJson["DATA"] as! NSDictionary? {
var msg: String = ""
if let tmp = objData.object(forKey: "Message") {
msg = tmp as! String
} else {
print("NIIILLLLL")
}
}

このエラーメッセージが表示されます。 Could not cast value of type "NSNull" (0x4587b68) to "NSString" (0x366d5f4) この行で msg = tmp as! String.

tmpのタイプは Any 変換の代わりに印刷を表示する必要があります tmp as! String

お手伝いありがとう、

回答:

回答№1は4

キャストを追加できます let.

if let tmp = objData.object(forKey: "Message") as? String {
msg = tmp
}

回答№2の場合は0

Swift 3では、たとえば:

fileprivate var rawNull: NSNull = NSNull()
public var object: Any {
get {
return self.rawNull
}
}

次のようにフィールドオブジェクトを確認できます。

if self.object is NSNull {
// nil
}