Testowałem głównie przy użyciu iPhone'a 6, 6 plus i iPada. Właśnie wypróbowałem moją aplikację dzisiaj na symulatorze iPhone'a 5 i otrzymałem błąd Core Data.Błąd Core Data Scalar tylko na niektórych urządzeniach
CoreData: error: Property 'setId:' is a scalar type on class 'AppName.EntityName' that does not match its Entity's property's scalar type. Dynamically generated accessors do not support implicit type coercion. Cannot generate a setter method for it
Teraz nie ma żadnego obiektu „setId” w mojej aplikacji, ale oczywiście jednostka ma obiektu „ID”, który jest ustawiony jako int.
class Entity: NSManagedObject {
@NSManaged var id: Int
}
W modelu danych podstawowych typem atrybutu jest Integer64. To może być mój problem, ponieważ wybrałem to, nie wiedząc, co jest najlepsze. Mam inne atrybuty w modelu i klasie, ale wszystkie są ciągami.
Szukam zarówno poprawki, jak i wyjaśnienia, dlaczego tak się dzieje tylko na niektórych urządzeniach, więc mogę się uczyć!
Pozwoliłem Xcode utworzyć klasę, ale później dodałem identyfikator później. Ponadto, jeśli ustawię właściwość na Int64, muszę przekonwertować cały mój kod, gdy próbuję wprowadzić dane do tej właściwości. Czy istnieje sposób, aby zamiast tego model pasował do Int? – Tim
@Tim: Dane podstawowe mają tylko stałe liczby całkowite (16, 32, 64-bitowe). –
Widzę to. Więc nie ma sposobu na użycie Int przez cały mój kod, a następnie konwersję do jednego rozmiaru przy zapisywaniu na CD? Zdecydowanie wdzięczny za wyjaśnienia, po prostu szukałem bardziej uniwersalnego rozwiązania. – Tim