我需要找到一种方法来制作一个对象,该对象将患者信息“全局”存储到我在目标c中的应用程序中。例如,A类创建对象(它基本上是用户名/密码屏幕)。当他们关闭应用程序时,我希望appdelegate的applicationdidEnterBackground从该对象(在A类中创建)中读取信息。
答案 0 :(得分:1)
您有几个选择:
将您的对象设为App Delegate上的属性
将其设为singleton
答案 1 :(得分:1)
其中一个选项是创建单身人士:https://developer.apple.com/library/mac/documentation/general/conceptual/devpedia-cocoacore/Singleton.html
您也可以简单地将这些数据写入NSUserDefaults或文件中,然后再读取 - 如果您只是偶尔使用它,那就更好了。
将此作为视图的公共属性并从appdelegate中读取 - 但是,如果您稍后将视图更改为子视图,或者在取消分配时也丢失此对象,则这不是最佳选项。
答案 2 :(得分:0)
你可以将类设为UserdataSingleton,它会覆盖NSObject。您可以在整个应用程序中使用它来全局共享数据(对于您的案例数组)。此代码模板可以帮助您:
#import <Foundation/Foundation.h>
@interface UserDataSingleton:NSObject
{ @私人的 NSArray * globalArray; }
+(UserDataSingleton *)getInstance;
- (void)saveInUserDatasingletonWithArray:(NSArray *)数组;
- (NSDictionary *)getGlobalArray;
@end
和实现文件会是这样的:
#import "UserDataSingleton.h"
@implementation UserDataSingleton
static UserDataSingleton * userDataSingletonInstance;
+(UserDataSingleton *)getInstance
{
if (userDataSingletonInstance == nil) {
userDataSingletonInstance = [[UserDataSingleton alloc] init];
}
return userDataSingletonInstance;
}
- (void)saveInUserDatasingletonWithArray:(NSArray *)数组 { globalArray = array; } - (NSDictionary *)getGlobalDictionary { return globalArray; } @end
用法:
#import "UserDataSingleton.h"
......................你的代码......
NSArray * this_IS_Array_Populated_here_For_Global_Access = [NSArray alloc] initWith ....];
[USERDATASINGLETON saveInUserDatasingletonWithArray:this_IS_Array_Populated_here_For_Global_Access]; //您将数组用于全局访问。
稍后在任何其他视图或视图控制器中你可以获得该全局数组,例如,假设你有YourViewController类:
NSMutableArray *yourArrayFromWebResponse = [USERDATASINGLETON getGlobalArray];