0
큰 문제가 있습니다. 내 프로그램은 3 플로트 값 (가속도계의 x, y, z)과 NSString 값 (이름)이있는 XML 파일을 저장해야합니다. 어떻게하면됩니까? 당신이 XML 형식에 대한 특정 요구 사항이없는 경우iPhone 응용 프로그램에서 XML 파일 만들기
큰 문제가 있습니다. 내 프로그램은 3 플로트 값 (가속도계의 x, y, z)과 NSString 값 (이름)이있는 XML 파일을 저장해야합니다. 어떻게하면됩니까? 당신이 XML 형식에 대한 특정 요구 사항이없는 경우iPhone 응용 프로그램에서 XML 파일 만들기
너무 많은 덕분에, 당신은 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];
감사합니다. 질문이 있습니다. 파일은 어디에 저장되어 있습니까? – zp26
어디에 있든 상관 없습니다. 예를 들어, 응용 프로그램 지원 폴더 (http://cocoawithlove.com/2010/05/finding-or-creating-application-support.html 참조)에 저장할 수 있습니다. –