我有一個核心數據對象(Order),它有一個返回另一個Core Data對象(OrderWaypoint)數組的方法。NSArray元素無法匹配Swift數組元素類型
func getOrderedWaypoints() -> [OrderWaypoint] {
let nameDescriptor = NSSortDescriptor(key: "stop_number", ascending: true)
let sorted: [OrderWaypoint] = self.waypoints.sortedArrayUsingDescriptors([nameDescriptor]) as [OrderWaypoint]
return sorted
}
一切正常,使用下面的循環
for waypoint in order.getOrderedWaypoints() {
// do something
}
當主目標如期但是,當我試圖在我的測試目標完全一樣的事情
fatal error: NSArray element failed to match the Swift Array Element type
我試着鑄造的價值,但似乎無法得到它的工作。任何想法爲什麼它在主要目標而不是測試目標中起作用?
編輯
嗯打破它進一步下降,這個問題特別是當我試圖讓一個項目從數組中發生的事情。
var orderedList: [OrderWaypoint] = order.getOrderedWaypoints()
for var i = 0; i < orderedList.count; i++ {
var waypoint = orderedList[i]
// do something
}
創建NSArray並將其傳遞給Swift代碼的代碼在哪裏? – Mark 2014-09-19 18:15:01
我用方法定義更新了原始文章。 order.waypoints是核心數據中的NSSet。我應用排序描述符來獲取NSArray並向下轉換爲[OrderWaypoint]。 – 2014-09-19 18:19:18
你有沒有得到這個工作?我遇到了類似的情況 - 使用核心數據的子類應該可以工作,但是我們遇到了這個問題。 – 2014-10-16 01:48:20