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 的值将在- setMyIntsetter 中进行检查,并且始终介于80and之间110MySettings单例将存储在用户默认值中。

另请参阅我的博客记录以获取更多详细信息。

于 2014-03-30T05:02:44.247 回答