的Xcode開始抱怨下面的代碼(運行良好W/O了好幾個月的任何問題):不明確使用「標」
let request = NSFetchRequest(entityName: entity)
request.returnsDistinctResults = true
let nsArr: NSArray = ["int_field", "date_field"]
request.propertiesToFetch = nsArr as [AnyObject]
request.resultType = .DictionaryResultType
let predicate = NSPredicate(format: "(val1 == %d) AND (val2 == %@)", argumentArray: [anIntegerValue, aStringValue])
request.predicate = predicate
do {
let results: NSArray = try moc.executeFetchRequest(request)
for result in results {
到目前爲止一切都很好。但是,當我嘗試從結果中提取數據,我得到一個「不明確使用‘標’的錯誤在以下方面:
let val1 = result["int_field"] as! Int
let val2 = result["date_field"] as! NSDate
不知道發生了什麼,但如果我代替上述語法:
let val1 = (result as! NSDictionary) ["int_field"] as! Int
let val2 = (result as! NSDictionary)["date_field"] as! NSDate
它的工作原理。什麼我不清楚就是爲什麼在聲明下面是不夠的(或在IOS 9.2發生了什麼事導致此):
request.resultType = .DictionaryResultType
的思考?
有趣。雖然我'得到'爲什麼有必要將類型添加到結果中(並且我將您的觀點放在Swift本機集合上),但我不明白是什麼突然導致xcode現在發出抱怨(代碼幾個月以來一直在快樂地運行)。思考? – goggelj
Swift 2.0和2.1有一些變化。如果項目在早期版本中編譯成功,則應用程序運行良好。這些問題總是在編譯時運行不同的Swift版本。 – vadian
這就是讓我困惑的原因。它今天開始抱怨。它一直在編譯和運行良好,無需擔心。一些東西已經改變了,解決方案(你和我的)都在工作。謝謝! – goggelj