1
안녕하세요, 두 개의 다른 포인터가 같은 위치를 가리키는 포인터가있는 구조체를 보관하려면 인코딩 디코딩 후 동일한 위치를 가리 킵니까?포인터가있는 NSKeyedArchiver
죄송합니다. 저의 영어 실력이 좋지 않으십니까?
안녕하세요, 두 개의 다른 포인터가 같은 위치를 가리키는 포인터가있는 구조체를 보관하려면 인코딩 디코딩 후 동일한 위치를 가리 킵니까?포인터가있는 NSKeyedArchiver
죄송합니다. 저의 영어 실력이 좋지 않으십니까?
예. 동일한 객체를 가리키는 두 개의 키가있는 경우 NSKeyArchiver는 키를 동일한 객체를 가리키는 키로 복원합니다.
NSString *one = @"1";
NSString *two = @"2";
NSMutableDictionary *dict = [[[NSMutableDictionary alloc] initWithObjectsAndKeys:one, @"one", two, @"two", one, @"three", nil] autorelease];
NSLog(@"one=%d, two=%d, three=%d", [[dict objectForKey:@"one"] hash], [[dict objectForKey:@"two"] hash], [[dict objectForKey:@"three"] hash]);
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:dict];
dict = nil; // no tricks!
dict = [NSKeyedUnarchiver unarchiveObjectWithData:data];
NSLog(@"one=%d, two=%d, three=%d", [[dict objectForKey:@"one"] hash], [[dict objectForKey:@"two"] hash], [[dict objectForKey:@"three"] hash]);
THX 나는 다음과 같이 듣고 싶다. –
@ user408141, 나는이 진술을 뒷받침하는 몇 가지 코드를 넣었다. –