내 게임에서 사용자가 전원을 아직 켰는 지 여부에 대한 "bool"값을 저장합니다. 이를 위해 NSUserDefaults를 사용하고 있습니다.NSUserDefaults - 사용 및 재사용을 위해 데이터 저장 - 새로 시작할 때마다 지우기?
([NSUserDefaults standardUserDefaults]
: 매크로가있다 "저장"참고)
: 나는 원래 NSUserDefaults 그래서 내 코드를 삽입하고 (다음 모든 코드가 AppDelegate.m 파일에) 설명하자에 대한 온라인 튜토리얼을 따라했다
powerups = [[NSMutableArray alloc] init];
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"dateKey"] == nil) {
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:[NSDate date], @"dateKey", nil];
[save setBool:NO forKey:POWER_1];
[save setBool:NO forKey:POWER_2];
[save setBool:NO forKey:POWER_3];
[save setBool:NO forKey:POWER_4];
[save setBool:NO forKey:POWER_5];
[save setBool:NO forKey:POWER_6];
[save setBool:NO forKey:POWER_7];
[save setBool:NO forKey:POWER_8];
[save setBool:NO forKey:POWER_9];
[save setInteger:0 forKey:@"1HighScore"];
[save setInteger:0 forKey:@"2HighScore"];
[save setInteger:0 forKey:@"3HighScore"];
[save setInteger:0 forKey:@"CumulativeScore"];
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"firstrun");
}
그래서 위의 코드에서 게임의 모든 클래스에서 호출 할 수있는 배열을 만들면서 사용 가능한 모든 전원 공급을 저장합니다. 이 "if"문은 NSUserDefaults에 모든 데이터 값을 만들기 때문에 게임을 처음 실행하는 경우에만 호출해야합니다. 참고 : jailbroken iPhone을 사용하고 생성 된 .plist 파일을 검사했습니다. "dateKey"의 값으로 불리는 어떤 가치도없는 것처럼 보입니다. 이 튜토리얼은 이것이 이것이 첫 번째 실행인지를 확인하는 방법이라고 설명했다. 왜냐하면 날짜 값이 존재하지 않으면 첫 번째 실행 등이 없기 때문이다. 논리적으로 말이된다. 그것은 모든 새로운 실행에 그 보인다 지금
if([save boolForKey:POWER_1])
[powerups addObject:POWER_1];
if([save boolForKey:POWER_2])
[powerups addObject:POWER_2];
if([save boolForKey:POWER_3])
[powerups addObject:POWER_3];
if([save boolForKey:POWER_4])
[powerups addObject:POWER_4];
if([save boolForKey:POWER_5])
[powerups addObject:POWER_5];
if([save boolForKey:POWER_6])
[powerups addObject:POWER_6];
if([save boolForKey:POWER_7])
[powerups addObject:POWER_7];
/*if([save boolForKey:POWER_8])
[powerups addObject:POWER_8];*/
if([save boolForKey:POWER_9])
[powerups addObject:POWER_9];
:
지금, 다음 코드는 NSUserDefaults는 이전에 그냥 "인구"또는 저장되었는지 여부, 존재해야하는 것이 주어진 배열을 채 웁니다 첫 번째 "if"문은 YES이고 모든 값은 첫 번째 코드 상자에 따라 다시 설정됩니다. 그러면 두 번째 코드 상자가 그에 따라 작동하고 배열이 채워지지 않습니다. 모든 것이 재설정되었으므로 ...
이것은 registerDefaults
과 관련이 있습니다. 전화 나 사용이 필요합니까? 문제가 무엇입니까?
덕분에 모두가 희망을 갖고 나는
rnc505
시뮬레이터 또는 장치에서 테스트 중이십니까? – LearnCocos2D
둘 다 테스트 중이지만 장치에서 발생합니다. 시뮬레이터에서 제대로 테스트하지 못했지만, 분명히 어쨌든 장치가 가장 중요합니다. –