NSUserDefaultsの整数を制限することは可能ですか?もちろん、アプリ内で制限することもできますが、設定のTextFieldsについて考えています。
いくつかのヒントを得るのは素晴らしいことです。
どうもありがとう。
NSUserDefaultsの整数を制限することは可能ですか?もちろん、アプリ内で制限することもできますが、設定のTextFieldsについて考えています。
いくつかのヒントを得るのは素晴らしいことです。
どうもありがとう。
そのケースをカバーする小さな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
シングルトンはユーザーのデフォルトに保存されます。
詳細については、私のブログ記録も参照してください。