我这里有一个基本问题。我知道我们可以使用NSUserDefaults来存储永久存在于设备中的数据。但是,我们可以使用任何其他方法/变量来存储一个会话的数据,即当用户关闭/关闭应用程序并重新打开它时,数据将完成。
我希望我可以在不同类(视图控制器)的同一会话中重新调用该数据(例如一个int)
非常感谢!!
答案 0 :(得分:2)
这样做的常见方法是在你的app委托中创建一个ivar,并设置两个方法来获取它。
答案 1 :(得分:0)
显然,您正在寻找的不是持久性,而是跨多个类的数据可用性。执行此操作的常见模式是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.
}