我對iOS相對比較陌生,在覈心數據分配中發現自己被「扔給狼」。我正嘗試使用NSPredicate
來創建一個Note
對象的數組以搜索managedObjectContext
。這不起作用,但我認爲我已經接近「終點線」。這裏是我得到的:將從managedObjectContext過濾的對象變爲NSArray
我有一個managedObjectContext
實例化,並有Note
對象在它。
我創建了一個名爲filteredNotes
的變量,它位於實例化爲空的類的頂部(至少我是這麼認爲的)。
var filteredNotes: [Note] = []
再往下,我有我想「填補」了filteredNote陣列匹配謂詞注對象的功能。下面是我想做到這一點:
let resultPredicate = NSPredicate(format: "noteTitle contains[c] %@", searchBar.text)
filteredNotes = (managedObjectContext as! NSArray).filteredArrayUsingPredicate(resultPredicate)
編譯器有這樣一段話吧:
Cast from 'NSManagedObjectContext?' to unrelated type 'NSArray' always fails
Cannot assign a value of type '[AnyObject]' to a value of type '[Note]'
我看到很多的例子香草NSArrays
(不是managedObjectContexts
)這樣做,我難住爲什麼我不能這樣做瓦特/ managedObjectContext
這是充滿了Note
對象。
這裏就是我的注意:NSManagedObject的樣子:
import Foundation
import CoreData
class Note: NSManagedObject {
@NSManaged var dateCreated: NSDate
@NSManaged var dateEdited: NSDate
@NSManaged var noteTitle: String
@NSManaged var noteBody: String
}
如何創建filteredNote
陣列有什麼建議?
'let result = ...'產生這個編譯器錯誤:'不能用類型爲'(NSFetchRequest)'的參數列表調用'executeFetchRequest'' – Adrian 2015-02-24 12:54:10
當然,我忘記了錯誤參數 - 你可以自己想出來只需通過自動完成;-)。 – Mundi 2015-02-24 22:16:02
謝謝!我有一個月的時間,所以我非常感謝你的洞察力。 – Adrian 2015-02-24 22:17:38