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 に答える