【发布时间】:2017-04-03 16:59:17
【问题描述】:
我正在尝试解析 .json 文件,但由于此错误,我无法最终确定它。我怎样才能避免这种情况?我搜索但我找不到它。 错误:“无法将 '__NSCFBoolean' (0x10da97608) 类型的值转换为 'NSArray' (0x10da97e28)。”
if (Dict["gorsel"] != nil) {
let gorsel = Dict["gorsel"] as! NSArray;
self.Image = gorsel[0] as! String as NSString;
self.ImageInfo = ImageSpecs(width: gorsel[1] as! Int, height: gorsel[2] as! Int);
self.ImageAvailable = true;
if (self.Image.lowercased.contains("ö") ||
self.Image.lowercased.contains("ç") ||
self.Image.lowercased.contains(" ") ||
self.Image.lowercased.contains("ğ") ||
self.Image.lowercased.contains("ş") ||
self.Image.lowercased.contains("ü") ||
self.Image.lowercased.contains("ı")) {
self.ImageAvailable = false;
}
}
【问题讨论】:
-
Dict["gorsel"]是一个布尔值。确保您的代码遵循正确的 JSON 格式。 -
你能发布你试图解析的 json 吗?
-
你为什么要把东西投给
NSString和NSArray?这是斯威夫特。使用 Swift 类型。为什么要一遍又一遍地在self.Image上打电话给lowercased?只做一次。最后,请使用标准命名约定。类名以大写字母开头。函数名和变量名应以小写字母开头。 -
另外,你真的应该避免使用
as!。如果这些值是nil或实际上不是您声明的类型,您的应用程序将崩溃。您应该安全地打开并转换这些值。
标签: ios arrays json swift nsmutablearray