我从这个question有一个字符串扩展,看起来非常简单,只有我得到一个额外的参数错误。 可变给出额外参数错误的字符串扩展
var modelDict: [Int: [String: String]] = [:]
扩展:
import Foundation
extension String {
func contains(_ string: String, options: String.CompareOptions) -> Bool {
return range(of: string, options: options) != nil
}
}
用法:
let filteredDict = self.sharedDataVal.modelDict.contains(manufacturerCodeVar, options: .caseInsensitive)
print("Filtered Array \(filteredDict)")
任何想法,为什么.caseInsensitive被标记为一个额外的ARG?
编辑基于罗布的建议,但我不认为我还没有得到它。
变量缺省值:
class sharedData {
static let sharedInstance = sharedData()
struct model{
var id: String
var modelName: String
var modelNumber: String
var manuShort: String
var phiTypeCode: String
var phiTypeDescription: String
}
var modelDictTest: [Int: [model]] = [:]
}
装入词典:
let modelID = recordInfo["id"] as? String
let modelName = recordInfo["modelname"] as? String
let modelNumber = recordInfo["modelnumber"]as? String
let modelManuShort = recordInfo["manu_short"]as? String
let modelPhiTypeCode = recordInfo["phitypecode"]as? String
let modelPhiDescription = recordInfo["phitypedescription"]as? String
let localModelDict = sharedData.model(id: modelID!, modelName: modelName!, modelNumber: modelNumber!, manuShort: modelManuShort!, phiTypeCode: modelPhiTypeCode!, phiTypeDescription: modelPhiDescription!)
用法:
let filteredDict = self.sharedDataVal.modelDictTest.contains(manufacturerCodeVar, options: .caseInsensitive)
仍然得到同样的错误,但我相信我不是正在加载结构int modelDictTest
正确
'modelDict'是什么类型? –
我猜'modelDict'是一个数组,因此你不能调用你的'contains'方法,而是只有一个参数的数组。 –
除非你的'modelDict'不是String,否则你不能使用'contains'方法。 – ridvankucuk