1

NSUserDefaultsの整数を制限することは可能ですか?もちろん、アプリ内で制限することもできますが、設定のTextFieldsについて考えています。

いくつかのヒントを得るのは素晴らしいことです。

どうもありがとう。

4

1 に答える 1

0

そのケースをカバーする小さなVRAppSettingsスーパークラスを書きました。

オブジェクトのプロパティを介してアプリの設定を保存し、そのオブジェクトをユーザーのデフォルトに自動的にアーカイブできます。

ここでそれを行う方法を説明します。VRAppSettings クラスの後継を作成します。

@interface MySettings : VRAppSettings
@property (nonatomic, readwrite) NSInteger * myInt;
@end

@implementation MySettings
- (NSString *)userDefaultsKeyPostfix
{
    return @"MyAppsSettings";
}
- (void)resetToDeveloperDefaults
{ 
    // Set default values here
    self.myInt = 85;
}
- (void)checkAfterInitWithCoder { }

- setMyInt(NSString * myInt)
{
    NSInteger max = 110;
    NSInteger min = 80;

    if (myInt > max) myInt = max;
    if (myInt < min) myInt = min;
    _myInt = myInt;
}
@end

次にMySettings、シングルトンとして使用できます。ここで方法は次のとおりです。

[MySettings sharedInstance].myInt = 99;
[[MySettings sharedInstance] synchronizeToUserDefaults];

NSLog(@"myInt = %d", [MySettings sharedInstance].myInt);

上記のコードでは、myInt に渡された値は- setMyIntセッターでチェックされ、常に と の間に80あり110ます。MySettingsシングルトンはユーザーのデフォルトに保存されます。

詳細については、私のブログ記録も参照してください。

于 2014-03-30T05:02:44.247 に答える