2010-03-27 80 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