iPhone -int to nsdata?
-
08-07-2019 - |
문제
응용 프로그램 상태를 저장하고 싶은 iPhone 앱을 만들고 있습니다. 여기에는 자체적으로 파일에 지속되는 int 속성이 포함됩니다. 나는 그것을 쓰고 일했지만, 내가 한 방식이 int를 문자열로 변환 한 다음 nsdata로 변환한다는 것을 알고 있습니다. 아무도 더 나은 방법을 제안 할 수 있습니까?
int someInt = 1;
NSString *aString = [NSString stringWithFormat:@"%d",someInt];
NSData *someData = [aString dataUsingEncoding:NSUTF8StringEncoding];
[someData writeToFile:[documentsDirectory stringByAppendingString:@"someFile"] atomically:YES];
그런 다음 디스크에서 읽고 int로 다시 넣습니다.
NSData* someData = [NSData dataWithContentsOfFile:[documentsDirectory stringByAppendingString:@"someFile"]];
NSString *aString = [[NSString alloc] initWithData:someData encoding:NSUTF8StringEncoding];
int someInt = [aString intValue];
해결책
쓰기:
int i = 1;
NSData *data = [NSData dataWithBytes: &i length: sizeof(i)];
[data writeToFile: [documentsDirectory stringByAppendingString: @"someFile"] atomically: YES]
그리고 다시 읽기 :
NSData *data = [NSData dataWithContentsOfFile: [documentsDirectory stringByAppendingString: @"someFile"]];
int i;
[data getBytes: &i length: sizeof(i)];
그러나 실제로 사용해야합니다 NSUserDefaults
이와 같은 경우, 어떤 경우에는 다음과 같습니다.
[[NSUserDefaults standardUserDefaults] setInteger: i forKey: @"someKey"]
글을 쓰고
int i = [[NSUserDefaults standardUserDefaults] integerForKey: @"someKey"];
읽다.
제휴하지 않습니다 StackOverflow