我已經將數據模型和核心數據添加到了我現有的項目中,並且我可以成功編寫對象並保存它們/插入,但是我不能只在數據庫中獲取什麼。我究竟做錯了什麼?或者我誤解了Core Data的工作原理?核心數據 - 無法首先插入
我可以插入一個對象,然後用下面的代碼獲得所需的結果 - 但是我無法首先檢索沒有使用插入的對象。我想存儲一個「令牌」,以便應用程序記住它。
let dc = DataController()
let moc = dc.managedObjectContext
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Token")
//fetchRequest.returnsObjectsAsFaults = false
do {
let entities = try moc.fetch(fetchRequest) as! [NSManagedObject]
print(entities.count) // prints 0
print(entities) // prints []
for entity in entities {
print(entities.count) // these dont work because of 0 results
print(entity) // these dont work because of 0 results
}
} catch {
print("could not fetch")
}
調試日誌:
0
[]
CoreData: annotation: Connecting to sqlite database file at "/Users/xxxx/Library/Developer/CoreSimulator/Devices/1231231-123123-123123-123123-123123123/data/Containers/Data/Application/123123-123123-123123-123123-123123123/Documents/DataModel.sqlite"
CoreData: sql: SELECT TBL_NAME FROM SQLITE_MASTER WHERE TBL_NAME = 'Z_METADATA'
CoreData: sql: pragma recursive_triggers=1
CoreData: sql: pragma journal_mode=wal
CoreData: sql: SELECT Z_VERSION, Z_UUID, Z_PLIST FROM Z_METADATA
CoreData: sql: SELECT TBL_NAME FROM SQLITE_MASTER WHERE TBL_NAME = 'Z_MODELCACHE'
CoreData: annotation: Disconnecting from sqlite database.
我已經打開了sqlite的文件和我以前所插入的對象都存在那裏。
爲什麼你認爲你能取來自空數據庫的數據? – shallowThought