如何在应用设置中全局访问?

时间:2013-09-11 20:28:10

标签: ios objective-c nsuserdefaults

我有一些应用程序设置,所有这些都是非常基本的,我需要在整个应用程序中访问它们。我已将其设置保存到NSUserDefaults。我的问题是,如果访问它们的最佳方法是每次加载一个类的实例时都必须从NSUserDefaults加载,或者如果最好在某个地方加载它并以某种方式从任何地方访问该全局数据。如果那是最好的选择,我怎么能去做后者?

2 个答案:

答案 0 :(得分:2)

使用NSUserDefaults,除非来自Instruments的分析数据表明它可能存在问题。如果有问题,那么可以考虑缓存。

NSUserDefaults已经为你做了缓存,所以应该没问题。

答案 1 :(得分:1)

您可以执行以下操作:

从NSObject创建一个类LoadUserDefaults。

您的标题文件:

#import <Foundation/Foundation.h>

@interface LoadUserDefaults : NSObject

//example variables
int score;

NSString username;


//etc...

-(void)loadUserDefaults;

@end

现在到你的.m文件:

#import "LoadUserDefaults.h"

@implementation LoadUserDefaults

-(void)loadUserDefaults{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    score = [defaults valueForKey:@"score"];

    username = [defaults valueForKey:@"username"];

    //etc.

}


@end

接下来,在您希望有权访问默认设置的任何位置导入您的课程:

#import "LoadUserDefaults"

之后将它们加载到某处:

LoadUserDefaults *loadDefaults = [[LoadUserDefaults alloc]init];

[loadDefaults loadUserDefaults];

最后,当你想获得变量时:

 LoadUserDefaults *loadDefaults = [[LoadUserDefaults alloc]init];

 int score = loadDefaults.score
相关问题