본문 바로가기
프로그래밍 놀이터/iOS

[ios/tutorial] Core Data - Creating and Saving Managed Objects

by 돼지왕 왕돼지 2017. 11. 6.
반응형

 [ios/tutorial] Core Data - Creating and Saving Managed Objects


https://developer.apple.com/library/watchos/documentation/Cocoa/Conceptual/CoreData/CreatingObjects.html#//apple_ref/doc/uid/TP40001075-CH5-SW1


@dynamic, attribute, Compiler, core data, CoreData, Creating Managed Objects, Creating NSManagedObject Subclasses, Entity, entity description, entity name, get set, inManagedObjectContext, insertNewObjectForEntityForName, managed object context, model object, NSEntityDescription, NSManagedObject, NSManagedObjectContext, persistent store, relationship, Runtime, Save, Saving NSManagedObject Instances, subclass, [ios/tutorial] Core Data - Creating and Saving Managed Objects


Creating Managed Objects


-

NSManagedObject 는 Core Data 의 model object 이다.

NSManagedObject 는 2개의 element 를 갖는다. entity description ( NSEntityDescription 과 managed object context  ( NSManagedObjectContext )  이다.



-

entity description 은 entity name 과 attribute, relationship 등을 가지고 있다.

아래 코드와 같이 하여 Model 객체를 얻을 수 있다.

AAAEmployeeMO *employee = [NSEntityDescription insertNewObjectForEntityForName:@“Employee” inManagedObjectContext:managedObjectContext];




Creating NSManagedObject Subclasses


-

CoreData 는 기본적으로 NSManagedObject instance 를 return 하지만, 모든 entity 의 subclass 를 만드는 것이 추천된다.

Subclass 를 만들면 편리 메소드들을 추가할 수도 있고, property 들도 추가할 수 있다.

@interface AAAEmployeeMO : NSManagedObject


@property (nonatomic, strong) NSString *name;


@end


@implementation AAAEmployeeMO


@dynamic name;


@end



-

@dynamic 은 complier 에게 variable 의 get set 이 runtime 에 결정될 것이라는 것을 알려준다.




Saving NSManagedObject Instances


-

NSManagedObject 를 만드는 것 자체가 persistent store 에 저장되는 것을 의미하는 것은 아니다.

만들었으면 managed object context 를 이용하여 저장해주어야 한다.

NSError *error = nil;

if ( [[self managedObjectContext] save:&error] == NO){

     NSAssert(NO, @“Error saving context: %@\n%@“, [error localizedDescription], [error userInfo]);

}




반응형

댓글