在我的遊戲中,我將玩家的統計信息保存在存儲在Documents目錄中的plist中。我有一個應該保存的名爲「Default_Stats.plist」的每個統計數據的空字典,以便如果這是第一次加載應用程序,它會將其複製到適當的目錄中,以便隨時加載和覆蓋。問題是,每次我的應用程序加載時,它都不會識別「Stats.plist」並用默認統計信息覆蓋它,重新設置玩家所做的每個統計信息......而且很奇怪,它完全適用於模擬器,但不在設備上。這裏是我的代碼:FileExistAtPath在模擬器上工作,但在設備上不工作
在這種方法我讀的統計:
- (void) readStatsFromFile{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *statsPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Stats.plist"];
//Check if the file has already been created
if (![[NSFileManager defaultManager] fileExistsAtPath:statsPath]){
[self createStatsList];
}else{
stats = [[NSMutableDictionary dictionaryWithContentsOfFile:statsPath]retain];
}
}
這裏是我的創建方法:
- (void) createStatsList{
NSString *statsPath = [[NSBundle mainBundle] bundlePath];
statsPath = [statsPath stringByAppendingPathComponent:@"Default_Stats.plist"];
stats = [[NSMutableDictionary dictionaryWithContentsOfFile:statsPath] retain];
[self writeStatsToFile];
}
而且我寫方法:
- (void) writeStatsToFile{
BOOL ok;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *statsPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Stats.plist"];
ok = [stats writeToFile:statsPath atomically:YES];
if (!ok) {
NSLog(@"Couldn't write to file");
}else
NSLog(@"Stats written succesfully!");
}
請幫忙,我真的不明白有什麼問題!我希望我已經讓自己清楚了!
你能更具體嗎? – RaphBlanchet