2010-03-27 32 views
1

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

会很高兴得到一些提示。

非常感谢。

+0

你是什么意思“限制一个整数”?你的意思是限制它的大小,以便在呈现为字符串时不会显示给很多字符?你在使用设置包吗? – TechZen 2010-03-27 14:36:30

+0

我的意思是设置一个最小值和最大值,例如。最小值是10和最大值。是20。 – rdesign 2010-03-27 19:45:28

回答

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二传手进行检查,并始终介于80110之间。 MySettings单身将以用户默认值存储。

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