NSUserDefaults - 存储基本设置

时间:2011-04-15 05:46:48

标签: iphone objective-c ios

我有一个flipView应用程序。在FlipView上,我保留了MainView的设置,并希望使用NSUserDefaults为MainView存储2个整数。我将在主应用程序中使用这些整数。是否有一些基本代码可以实现我尝试做的事情?

我希望将信息存储在FlipView上(如果已更改),并在MainView中首次运行程序时使用默认设置。

此外,我完成使用后,是否需要release NSUserDefaults对象?

2 个答案:

答案 0 :(得分:2)

查看以下代码,我已经包装并为您轻松搞定,

您可以使用以下代码: 在您要使用的任何代码中导入“Settings.h”,(可能是AppDelegate.m)。然后

设置值,使用

[Settings setSetting:@"AUTOLOGIN" value:@"1"];
[Settings setSetting:@"OTHERPROPERTY" value:@"100"];

并记住,仅存储指针数据类型,

获取设定值:

[Settings getSetting:@"AUTOLOGIN"];

下面有两个文件,Setting.h和Setting.m,make那些

头文件是:

#import <Foundation/Foundation.h>    
@interface Settings : NSObject {

}
+(id) getSetting:(NSString *)key;
+(void) setSetting:(NSString *)key value:(id)v;
@end

- 并且实施文件是

#import "Settings.h"
@implementation GCCSettings
static NSMutableDictionary *settings = nil;

+(id) getSetting:(NSString *)key{
    if(settings == nil){
        settings = [[NSMutableDictionary alloc] initWithDictionary:
                    [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"settings"]
                    ];
    }
    return [settings objectForKey:key];
}

+(void) setSetting:(NSString *)key value:(id)v{
    [settings setValue:v forKey:key];
    [[NSUserDefaults standardUserDefaults] setObject:settings forKey:@"settings"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}
@end

最后不要释放你没有使用的任何对象(new,init,retain等)。

答案 1 :(得分:1)

您可以存储整数 [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@“theKey”]并用[[NSUserDefaults standardUserDefautls] integerForKey:@“theKey”]将其检索。这就是处理用户默认值的整数所需的全部内容。

您不释放NSUserDefaults对象。这是一个单身人士,所以只有一个会在你的应用程序的生命周期中创建。你也不拥有它,这意味着你不会释放它。