NSUserDefaults限制整数?

时间:2010-03-27 11:53:15

标签: iphone integer limit nsuserdefaults

是否可以限制NSUserDefaults中的整数? 当然,你可以在你的应用程序中限制它,但我正在考虑设置中的TextFields。

获得一些提示会很棒。

非常感谢。

1 个答案:

答案 0 :(得分: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);

在上面的代码中,将在- setMyInt setter中检查传递给myInt的值,并始终在80110之间。 MySettings单例将存储在用户默认值中。

有关详细信息,另请参阅我的blog record