0

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

4

2 回答 2

2

除非来自 Instruments 的分析数据表明这可能是一个问题,否则请使用 NSUserDefaults。如果有问题,那么可能是时候考虑缓存了。

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

于 2013-09-11T20:42:40.113 回答
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
于 2013-09-11T20:50:44.713 回答