2013-04-18 3 views
9

최근에 NSKeyedArchiver 및 NSKeyedUnarchiver에 대해 배우고 있습니다. 배열을 보관하는 세 가지 방법이 있다는 것을 알았고 그 차이점을 파악하려고합니다. 1.UsingarchiveRootObject와의 차이점 : toFile : 및 writeToFile :

archiveRootObject:toFile:

[NSKeyedArchiver archiveRootObject:testArray toFile:filePath]; 
archivedDataWithRootObject:에서

2.Get 데이터가

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:testArray]; 
    [data writeToFile:filePath atomically:YES]; 

3.Using encodeObject을 파일에 쓸 : 얻기 위해 데이터

NSMutableData *data = [NSMutableData data]; 
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 
    [archiver encodeObject:testArray forKey:@"testArray"]; 
    [archiver finishEncoding]; 
    [data writeToFile:path atomically:YES]; 

테스트를 마친 후에 위의 모든 방법이 잘 작동하고 파일에 동일한 내용을 기록하는 것으로 나타났습니다.

1 위의 모든 방법과의 차이점은 무엇입니까?

Q2 : 세 번째 방법으로 NSData를 사용할 수 있습니까?

답변

5

첫 번째로 데이터를 어떻게 처리할지 선택할 수는 없습니다. 파일로 이동합니다. 두 번째 방법은 예를 들어 네트워크 연결을 통해 데이터를 보내는 것입니다. 더 유연합니다. 세 번째 방법은 단일 개체를 넣을 수 있다는 것을 제외하고는 똑같은 작업을 수행합니다. 그것이 그대로 배열과 함께 작동할지 모르겠지만, 수도 있습니다. 훨씬 더 융통성있게 배열이나 사전을 준비 할 필요가 없습니다. 꽤 많이입니다

. 그것은 모든 편의와 유연성에 관한 것입니다.