我從這個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