2010-05-26 2 views
0

큰 문제가 있습니다. 내 프로그램은 3 플로트 값 (가속도계의 x, y, z)과 NSString 값 (이름)이있는 XML 파일을 저장해야합니다. 어떻게하면됩니까? 당신이 XML 형식에 대한 특정 요구 사항이없는 경우iPhone 응용 프로그램에서 XML 파일 만들기

답변

1

너무 많은 덕분에, 당신은 XML 형식의 데이터를 보관하기 위해 NSKeyedArchiver 클래스를 사용할 수 있습니다 :

float x, y, z; 
NSString *name; 

NSMutableData *data = [NSMutableData data]; 
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 
[archiver setOutputFormat:NSPropertyListXMLFormat_v1_0]; 
[archiver encodeFloat:x forKey:@"x"]; 
[archiver encodeFloat:y forKey:@"y"]; 
[archiver encodeFloat:z forKey:@"z"]; 
[archiver encodeObject:name forKey:@"name"]; 
[archiver finishEncoding]; 
BOOL result = [data writeToFile:@"MyFile" atomically:YES]; 
[archiver release]; 

일단 작성을 읽기는 간단하다 :

NSData *data = [NSData dataWithContentsOfFile:@"MyFile"]; 
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; 
x = [unarchiver decodeFloatForKey:@"x"]; 
y = [unarchiver decodeFloatForKey:@"y"]; 
z = [unarchiver decodeFloatForKey:@"z"]; 
name = [unarchiver decodeObjectForKey:@"name"]; 
[unarchiver finishDecoding]; 
[unarchiver release]; 
+0

감사합니다. 질문이 있습니다. 파일은 어디에 저장되어 있습니까? – zp26

+0

어디에 있든 상관 없습니다. 예를 들어, 응용 프로그램 지원 폴더 (http://cocoawithlove.com/2010/05/finding-or-creating-application-support.html 참조)에 저장할 수 있습니다. –

관련 문제