2013-01-10 11 views
10

Ostatnio zacząłem pracować nad danymi podstawowymi, proszę każdy może mi powiedzieć jaka jest różnica między danymi transformowalnymi a binarnymi. Muszę przechowywać myClassObject w danych podstawowych. Stworzyłem atrybut i zdefiniowałem jego typ jako dane binarne, ale w momencie przechowywania otrzymuję błąd.Jaka jest różnica między danymi transformowalnymi a binarnymi?

+1

Jakiego błędu dostałeś? Jakiego rodzaju dane będą przechowywane w tym atrybucie? (Mam na myśli biznesowy widok danych, a nie formalny typ danych). –

+1

Czy to pomaga? http://stackoverflow.com/questions/3014498/what-can-i-do-w-ransformable-attribute-type-in-core-data-on-the-iphone – trojanfoe

Odpowiedz

20

Za pomocą atrybutu binarnego można bezpośrednio odczytywać i zapisywać wystąpienia w postaci NSData.

Atrybut przekształcalny umożliwia odczytywanie i zapisywanie wystąpień dowolnej klasy, które można konwertować do formatu NSData. Rzeczywiste miejsce przechowywania danych jest takie samo jak z atrybutem binarnym, ale Core Data używa NSValueTransformer do konwersji z/do NSData, gdy jest to konieczne.

Na przykład powiedzmy, że obiekt zarządzany ma atrybut obrazu, w którym wygodnie byłoby bezpośrednio przeczytać i zapisać UIImage. Z wyjątkiem, UIImage nie można zapisać w danych podstawowych. Ale UIImage można przekonwertować na i od NSData. Tak więc, jeśli użyto transformowalnego atrybutu, można odczytywać i zapisywać UIImage, zachowując jednocześnie NSData w składnicy danych.

+0

Tom, Czy przekształcalne dane zachowują to samo zachowanie NSData dotyczące pamięci zewnętrznej? (nawet jeśli zezwolenie na zewnętrzne przechowywanie nie jest jawnie w interfejsie użytkownika, czy też bloby zaczynają pojawiać się w Core Data Store)? Dokumentacja nie precyzuje, że atrybut przekształcalny zostanie zapisany w zewnętrznym rekordzie lub regułach, które zostaną zastosowane. Czy możesz podzielić się swoim doświadczeniem? –

+0

Dokładnie mam to samo pytanie. Nie ma takiej opcji w Typu atrybutów Transformable, które mają być przechowywane w "External Storage". Czy to jest domyślnie włączone, czy co? –

Powiązane problemy