【问题标题】:Variable that store data for just one session仅存储一个会话的数据的变量
【发布时间】:2013-11-03 21:00:58
【问题描述】:

我在这里有一个基本问题。我知道我们可以使用 NSUserDefaults 在设备中永久存储数据。但是有没有其他方法/变量可以用来存储一个会话的数据,即当用户关闭/关闭应用程序并重新打开它时,数据将完全消失。

我希望我能在不同类(视图控制器)的同一会话中回想起该数据(例如 int)

非常感谢!!

【问题讨论】:

    标签: ios iphone objective-c


    【解决方案1】:

    执行此操作的常见方法是在您的应用委托中创建一个 ivar,以及设置和获取它的两种方法。

    【讨论】:

    • 谢谢大卫!我会调查的!
    【解决方案2】:

    显然,您要寻找的不是持久性,而是跨多个类的数据可用性。执行此操作的常见模式是Singleton pattern。下面是一个示例实现。

    @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.
    }
    

    【讨论】:

      猜你喜欢
      • 2019-09-11
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 2018-01-26
      • 2014-02-07
      • 2021-02-01
      • 2015-10-09
      • 1970-01-01
      相关资源
      最近更新 更多