2017-04-12 9 views
0

내 프로젝트에 2 개의 NSMutableArrays가 있고 핵심 데이터가 NSMutableArray를 지원하지 않기 때문에 NSKeyArray가 코어 데이터에 저장 될 수 있도록 NSMutableArray를 NSMutableArray로 아카이브 및 아카이브 해제해야한다는 것을 알았습니다. 내 tableview에 대한 NSFetchResultsController 구현 한 NSMutableArray있는 NSMutableArray 저장하고 코어 데이터 사용하는 방법에 대한 갈 것이라고? 아래에 배열과 NSKeyArchiver 코드를 게시 할 것입니다.NSKeyedArchiver를 사용하여 NSMutableArray를 Core Data에 저장할 수 있습니까?

- (instancetype)init { 
    self = [super init]; 
    if (self) { 
    self.nameList = [NSMutableArray arrayWithObjects:@"1", 
                @"2", 
                @"3", 
                @"4", 
                @"5", 
                nil]; 


    self.descArray = [NSMutableArray arrayWithObjects:@"desc1", 
                 @"desc2", 
                 @"desc3", 
                 @"desc4", 
                 @"desc5", 
                 nil]; 
        } 
    return self; 
} 

// How arrays are archived 
NSData *titleData = [NSKeyedArchiver archivedDataWithRootObject: self.nameList]; 

.... //Not sure what to do with the archived data 

NSData *descData = [NSKeyedArchiver archivedDataWithRootObject: self.descArray]; 

.... 

두 개의 어레이를 보관하면 어떻게됩니까? 나중에 어떻게 추가 할 수 있습니까?

핵심 데이터 모델은 간단하며 "데이터"라는 엔티티이며 "제목"및 "desc"라는 두 가지 유형의 문자열을가집니다. 2 개의 속성은 배열을 저장하는 데 사용됩니다.

이 프로젝트에 대한 희망은 사용자가 이미 셀을 구성하는 기존 데이터 위에 새로운 개체를 테이블 뷰에 추가 할 수있게하고 이것이 Core Data에서 수행되기를 바랍니다. NSFetchResultController에 대해 알고 있지만 제대로 작동하려면 문제가 있습니다. 올바른 방향으로 나를 조종 할 수있는 도움을 환영합니다.

+0

'name'과'description' 속성을 가진 핵심 데이터 엔티티가 있어야하고 코어 데이터에 여러 객체를 생성해야합니다. – Paulw11

답변

0

불변의 데이터를 코어 데이터에 저장할 수 있습니다. U는 NSKeyedArchiver를 사용하여 변경할 수있는 것으로 변경할 수 있습니다. NSUserDefaults에서도 마찬가지입니다.

+0

코드에 예제를 추가 할 수 있습니까? – jumpman007

+0

func getDataFromArray (arrayData : NSArray?) -> NSData { return NSKeyedArchiver.archivedDataWithRootObject (arrayData!) } – shiv