【发布时间】:2023-04-07 15:35:01
【问题描述】:
我从服务器收到一个 JSON 响应,其中包含字典元素,其中一个元素可能是数组,其中包含 ["abc","def","ghi"] 等值,我将此数组分配给名为数组的变量如下代码所示:
self.array = infoDictionary["element1"] as! [String]
我面临的问题是,如果键“element1”为空,那么我会收到错误:
无法将“__NSCFConstantString”类型的值转换为“NSArray”
这会导致我的应用程序崩溃。如果有“”反对“element1”,我怎样才能避免我的应用程序崩溃?
【问题讨论】:
-
我的建议:禁止使用
as!和强制解包你的代码。在任何地方使用安全展开、捕获错误、为您的if let ...条件创建else子句等。 -
我在块外声明了一个变量,所以我不能使用 if let...
-
错了。您可以始终安全地打开包装。 :) 如果您不能使用
if let,那么请使用guard let或任何其他安全展开技术。 学习这些技巧。 :) -
错误信息显示键
element1的值是String而不是Array,它应该是self.array = infoDictionary["element1"] as! String -
它可以是字符串或数组,如果我把它写成 self.array = infoDictionary["element1"] as! String 那么如果它返回数组怎么办,那么应用程序将再次崩溃。
标签: ios arrays json string swift