我正在寻找在所有类中全局存储和读取变量的最佳方式。我知道我可以使用"singleton",但我不确定这是否是存储变量的最佳方法,也不确定如何做到这一点?
我使用singleton,下面是我的操作方法:
创建一个新的类,对于这里的演示,我们将其命名为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.mdo:中
#import "MyDataModel.h"
@implementation MyDataModel
@synthesize myStringVariable, myIntVariable;
static MyDataModel *_sharedInstance;
+ (MyDataModel *) sharedInstance
{
if(!_sharedInstance)
{
_sharedInstance = [[MyDataModel alloc] init];
}
return _sharedInstance;
}
@end
现在,在任何想要使用这个singleton的类中,都必须#import
这个类,下面是如何使用变量:
[MyDataModel sharedInstance].myStringVariable = @"anyThing";
[MyDataModel sharedInstance].myIntVariable = 123;
我希望这能为你澄清一些事情。
您可以使用NSUserDefaults、AppDelegate中的Variables(不建议使用)或singleton。我总是在我的应用程序中创建一个singleton来存储各种变量和方法。