1. ホーム
  2. ios

[解決済み] iOSとAndroidの共有環境設定の同等性

2022-08-08 01:19:02

質問

私は Android アプリを iOS に移植しているのですが、レベルが完了するたびに保存するために、Android の共有環境設定を使用したことがあります。

そうすることで、ユーザーがアプリに戻ったときに、レベル 3 などに上がっていることを確認できます。

iOSに同様のメカニズムはありますか?それとも、アプリケーション固有のファイルに手動で書き出す必要がありますか?

もしそうなら、どのように私のアプリケーションにのみ見えるファイルに書き出すのでしょうか?

ありがとうございます。

どのように解決するのですか?

使用方法 NSUserDefaults : - これは、あなたが言ったような現在のレベルのような小さなデータのビットのためのものであることに注意してください。アプリを開くたびに、そこから何かを必要とするかどうかにかかわらず、メモリに読み込まれるからです(アプリの他の部分もこれを使用します)。

Objective-C。

読書です。

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)
}