1

ここで基本的な質問が 1 つあります。NSUserDefaults を使用して、デバイスに永久に残るデータを保存できることはわかっています。しかし、1 つのセッションだけのデータを保存するために使用できる他のメソッド/変数はありますか。つまり、ユーザーがアプリを閉じたりシャットダウンしたり、再度開いたりすると、データは完全に失われます。

同じセッション中に、異なるクラス (ビュー コントローラー) でそのデータ (int など) を呼び戻すことができることを願っています。

どうもありがとう!!

4

2 に答える 2

2

これを行う一般的な方法は、アプリ デリゲートで ivar を作成し、それを設定および取得する 2 つのメソッドを作成することです。

于 2013-11-03T12:50:06.777 に答える
0

どうやら探しているのは永続性ではなく、複数のクラスにわたるデータの可用性です。これを行う一般的なパターンはSingleton パターンです。以下は実装例です。

@interface MySingleton : NSObject {
   NSString *someProperty;
}

@property (nonatomic, retain) NSString *someProperty;

+ (id)sharedManager;

@end


@implementation MyManager

@synthesize someProperty;

#pragma mark Singleton Methods

+ (id)sharedManager {
   static MyManager *sharedMyManager = nil;
   static dispatch_once_t onceToken;
   dispatch_once(&onceToken, ^{
      sharedMyManager = [[self alloc] init];
   });
   return sharedMyManager;
}

- (id)init {
   if (self = [super init]) {
     someProperty = [[NSString alloc] initWithString:@"Default Property Value"];
   }
   return self;
}

- (void)dealloc {
  // Should never be called, but just here for clarity really.
}
于 2013-11-03T13:00:58.573 に答える