W swift wcześniej, byłem w stanie użyć takiego kodu, aby dodać nowe dane do mojego "TestEntity" w moim modelu danych.Jak wstawić nowe dane do encji w Swift3?
NSManagedObject
został stworzony dla mojego „TestEntity” i udało mi się ustawić jego atrybuty z „kropka” składni
Na koniec, chciałbym zapisać kontekst
let entity=NSEntityDescription.insertNewObject(forEntityName: "TestEntity", into: context) as! TestEntity
entity.testAttribute="test value"
context.save()
Ten kod nie działa pracować w Swift3. Kiedy go uruchomić, pojawia się następujący błąd wykonania:
Could not cast value of type 'NSManagedObject_TestEntity_' (0x175306b0) to 'testCoreData.TestEntity' (0xd6bb8). 2016-06-19 11:07:52.305195 testCoreData[689:264453] Could not cast value of type 'NSManagedObject_TestEntity_' (0x175306b0) to 'testCoreData.TestEntity' (0xd6bb8)
Czy ktoś może rzucić nieco światła na to, jak powinno być zrobione w swift3, proszę? Każda pomoc jest wysoko ceniona. Dziękuję.
Druga część pytania dotyczy sposobu ponownego dostępu do danych. następujący kod kończy się błędem: błąd krytyczny: NSArray
elementem udało się dopasować Swift tablicę typu elementu
let fr:NSFetchRequest<TestEntity>=TestEntity.fetchRequest()
do {
let searchResults=try context.fetch(fr)
if let results=searchResults {
for result in results {
print("testAtt = \(result.testAtt)")
}
}
} catch {
}
Zapisywanie musi być zawijane w bloki "try-catch". – Mundi
@Mundi Tak, oczywiście, ale nie ma to znaczenia dla pytania. Usunąłem linię. – vadian
Musiałem utworzyć NSEntityDescription dla powyższego kodu do pracy. bez niego wystąpił kolejny błąd środowiska wykonawczego: Przerywanie aplikacji z powodu nieprzechwyconego wyjątku "NSInvalidArgumentException", powód: "Klasa NSManagedObject klasy" testCoreData.TestEntity "musi mieć prawidłowy identyfikator NSEntityDescription." 'let entityDes = NSEntityDescription.entity (forEntityName:" TestEntity ", w: context) niech entity = TestEntity (entity: entityDes !, insertInto: context) entity.testAtt =" atrybut testowy "' Ale potem zadziałało. Dziękuję Ci. – matyasl