私は Android アプリを iOS に移植していますが、レベルが完了するたびに保存するために Android の共有設定を使用しました。
そうすれば、ユーザーがアプリに戻ったときに、レベル 3 まで達していることなどがわかります。
iOS にも同様のメカニズムはありますか? それとも、アプリケーション固有のファイルに手動で書き出す必要がありますか?
もしそうなら、自分のアプリケーションにのみ表示されるファイルに書き出すにはどうすればよいでしょうか?
ありがとう。
ベストアンサー1
使用NSユーザーデフォルト: -これは、あなたが言及した現在のレベルなどの小さなデータ用であることに注意してください。これを乱用して大きなデータベースとして使用しないでください。これは、アプリを開くたびに、何かが必要かどうかに関係なく、メモリにロードされるためです (アプリの他の部分でもこれが使用されます)。
目的:
読む:
NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
NSString *currentLevelKey = @"currentlevel";
if ([preferences objectForKey:currentLevelKey] == nil)
{
// Doesn't exist.
}
else
{
// Get current level
const NSInteger currentLevel = [preferences integerForKey:currentLevelKey];
}
書き込み:
NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
NSString *currentLevelKey = @"currentlevel";
const NSInteger currentLevel = ...;
[preferences setInteger:currentLevel forKey:currentLevelKey];
// Save to disk
const BOOL didSave = [preferences synchronize];
if (!didSave)
{
// Couldn't save (I've never seen this happen in real world testing)
}
。
迅速:
読む:
let preferences = NSUserDefaults.standardUserDefaults()
let currentLevelKey = "currentLevel"
if preferences.objectForKey(currentLevelKey) == nil {
// Doesn't exist
} else {
let currentLevel = preferences.integerForKey(currentLevelKey)
}
書き込み:
let preferences = NSUserDefaults.standardUserDefaults()
let currentLevelKey = "currentLevel"
let currentLevel = ...
preferences.setInteger(currentLevel, forKey: currentLevelKey)
// Save to disk
let didSave = preferences.synchronize()
if !didSave {
// Couldn't save (I've never seen this happen in real world testing)
}