да. Magical Record упростит вашу жизнь! Нет ничего сложного в том, чтобы использовать их в уже созданном проекте.
Только будьте очень осторожны с контекстами. MR автоматически управляется, создает, объединяет контекст. И когда вы начнете их использовать - любые действия с контекстом вы должны делать с помощью методов Magical Record MR_.
Вот основной шаг для настройки Magical Record:
- Добавьте Magical Record через CocoaPods: добавьте в Podfile строку:
pod 'MagicalRecord'
(не забудьте запустить pod install
)
- настроить manageObjectContext в стартовом приложении:
AppDelegate.m
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[MagicalRecord setupCoreDataStack];
_managedObjectContext = [NSManagedObjectContext MR_defaultContext];
//other your code
}
И когда вы хотите разобрать JSON на Entity — напишите это:
[Item MR_importFromObject:JSONToImport];
А метод MR_importFromObject автоматически создаст новую сущность или обновит существующую.
Конкретный идентификатор для каждой сущности - это атрибут имени вашей сущности плюс «ID». (например, если сущность называется "Элемент" - уникальным именем атрибута будет "ItemID") или вы можете указать специальный ключ с именем "mappedKeyName" и установить свой уникальный идентификатор.
3. Сохранить изменения:
[_managedObjectContext MR_saveToPersistentStoreAndWait];
4. Получить данные:
NSArray items = [Item MR_findByAttribute:@"itemID"
withValue:"SomeValue"
andOrderBy:sortTerm
ascending:YES
inContext:[NSManagedObjectContext MR_defaultContext]];
5. И, наконец, перед закрытием приложения следует использовать метод очистки:
[MagicalRecord cleanUp];
Об использовании многопоточности:
Чтобы использовать контекст не в основном потоке, вы должны создать localContext
в каждом потоке.
Нравится:
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextWithParent:[NSManagedObjectContext MR_defaultContext]];
//do thing with localContext - fetch, import, etc.
Вот очень хороший учебник по использованию MR: cimgf: importing-data-made-easy< /а>
person
skywinder
schedule
02.09.2013