我在tableview的viewforHeaderInSection
方法中应用了以下代码。当我检查dictkey >= 3
:
二元运算符'> ='不能应用于'Any'和'Int'类型的操作数
else if finalDict.count > 0 {
print(section)
let dictKey = selectedValueArray[section]
print(dictKey)
if self.finalDict.object(forKey: String(describing: dictKey)) != nil {
let diaryRowArray = self.finalDict.object(forKey: String(describing: dictKey)) as! NSArray
print(diaryRowArray.count)
print(diaryRowArray)
if dictKey >= 3
var tempsection = section
tempsection = 0
let diarydescription = diaryRowArray[tempsection] as! DiaryModel
headerLabel.text = diarydescription.diary_category_name
print(headerLabel.text!)
}
}
}
答案 0 :(得分:2)
如果你知道它肯定会成为一个Int(如果它是一个表格行应该是它)你不能将它强制转换为Int
let dictKey = selectedValueArray[section] as! Int
if(dictKey >= 3) {
print("It's equal to or greater than 3")
}
如果它可能是另一种类型(即字符串),你可以将它转换为Int然后检查它是否为
let dictKey = selectedValueArray[section] as? Int
if(dictKey != nil) {
if(dictKey! >= 3) {
print("It's equal to or greater than 3")
}
}
或者第三种选择可以是使用if let语句
if let dictKey = selectedValueArray[section] as? Int {
//check if its greater than 3
if(dictKey >= 3) {
print("It's equal to or greater than 3")
}
}
编辑: 如果你的数组是一个字符串数组作为数字(即[“1”,“2”,“3”,“4”]),试试这个
let dictKey = Int(selectedValueArray[section])
如果你的数组是一个类型为any的数组,那么你将把它作为字符串数组转换,然后将值转换为int。
let stringArray = selectedValueArray as! [String]
let dictKey = Int(stringArray[section])
答案 1 :(得分:0)
您无法在dictkey
之间进行比较,因为3是整数,而dictKey是Any。您必须输入强制转换guard let dictKey = selectedValueArray[section] as? Int else {return}
为:
Host
然后你可以比较它。