2

サウンドをオンまたはオフにするために使用される UISwitch があります。状態は NSUserDefaults を使用して保存されます。よく働く。ただし、アプリをインストールして最初から起動すると、BOOL 値は 0 になり、スイッチは OFF になります。以前に値が保存されていないためです。したがって、デフォルトはオフであり、オンにして次回もオンにすることができます。

私は逆にしたいので、アプリをインストールするとき、スイッチはデフォルトでオンになっており、オフにすることができます。

どうすれば解決できますか?

4

2 に答える 2

4

ではapplication:didFinishLaunchingWithOptions:、特定のキーがすでに設定されているかどうかを確認します。が返された場合nilは、選択したデフォルト値に設定します。明確にするために、以下のスニペットを見てください。

コードが簡単になり、エラーが発生しにくくなるため、ステートメントobjectForKey:でを使用することをお勧めします。ifもちろん、デフォルト値は好きなように設定できます。

Objective-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];

    if (![ud objectForKey:@"YOUR_KEY"]) {
        [ud setBool:YES forKey:@"YOUR_KEY"];
    }

    // Your Custom Code

    return YES
}

スイフト3

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    let ud = UserDefaults.standard

    if ud.object(forKey: "YOUR_KEY") == nil {
        ud.set(true, forKey: "YOUR_KEY")
    }

    // Your Custom Code

    return true
}
于 2013-01-29T12:58:57.693 に答える
1

applicationDidFinish の読み込みでは、心配しているものの値を確認し、null の場合はデフォルトに設定します。この場合は 0 / OFF / NO です。

すべての UI 要素についても同様です。

于 2013-01-29T11:12:25.980 に答える