如果条件问题在 swift.



我知道这是一个基本问题,但我面临着一个与之相关的问题,即我正在从后端服务获取数据。

从服务中,我得到了 [] 作为响应。 我正在将其与我的模型类数组进行比较。意思是,如果我的模型类数组符合 [],那么我必须执行一些操作。

我的代码是这样的,

let addonCategory = subCategoryModel![tappedIndex.section].items[tappedIndex.row].addonCategory
print(addonCategory as Any)
if addonCategory == "[]"{
print("Hello")
}
else {
print("Hi")
}

但是当我将其与 [] 括号进行比较时,它会显示错误消息,

无法将类型"字符串"的值分配给类型"[插件类别模型]?

如何将其与括号进行比较?

您需要检查数组是否有元素。

if addonCategory.count > 0 {
// array has element
} else {
// array hasn't element
}

或者,您可以使用guard letif let进行检查。

使用 if let

if let addonCategory = subCategoryModel[tappedIndex.section].items[tappedIndex.row].addonCategory, addonCategory.isEmpty {
print(addonCategory)
print("Hello")
} else {
print("Hi")
}

您必须在addonCategory上使用数组属性。它不属于String类型

let addonCategory = subCategoryModel![tappedIndex.section].items[tappedIndex.row].addonCategory
print(addonCategory.count == 0 ? "Hello" : "Hi")

在这里,我使用了运算符ternary而不是传统的if-else语法。

最新更新