是否可以在 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
setter 中进行检查,并且始终介于80
and之间110
。MySettings
单例将存储在用户默认值中。
另请参阅我的博客记录以获取更多详细信息。