2

我正在寻找在我的所有类中全局存储和读取变量的最佳方式。我知道我可以使用“单例”,但是我不确定这是否是存储变量的最佳方法或如何准确地执行此操作?

4

2 回答 2

5

我使用单例,这是我的做法:

创建一个新类,为了演示,我们将其命名为MyDataModel。在MyDataModel.h中执行以下操作:

#import <Foundation/Foundation.h>

@interface MyDataModel : NSObject
{
    NSString *myStringVariable;
    NSUInteger myIntVariable;
    //add any variables you need
}

@property (nonatomic, retain) NSString *myStringVariable;
@property (nonatomic) NSUInteger myIntVariable;

+ (MyDataModel *) sharedInstance;

@end

现在在MyDataModel.m中执行:

#import "MyDataModel.h"

@implementation MyDataModel

@synthesize myStringVariable, myIntVariable;

static MyDataModel *_sharedInstance;

+ (MyDataModel *) sharedInstance
{
    if(!_sharedInstance)
    {
        _sharedInstance = [[MyDataModel alloc] init];
    }
    return _sharedInstance;
}

@end

现在在任何你想使用这个单例的类中,你都必须使用#import这个类,这里​​是如何使用变量:

[MyDataModel sharedInstance].myStringVariable = @"anyThing";
[MyDataModel sharedInstance].myIntVariable = 123;

我希望这可以为您澄清事情。

于 2012-09-01T20:27:55.140 回答
0

您可以使用 NSUserDefaults、AppDelegate 中的变量(不建议)或单例。我总是在我的应用程序中创建一个单例来存储各种变量和方法。

于 2012-09-01T20:41:12.087 回答