创建存储患者信息的对象。需要在整个应用程序中使用它

时间:2013-12-13 20:43:10

标签: ios iphone objective-c

我需要找到一种方法来制作一个对象,该对象将患者信息“全局”存储到我在目标c中的应用程序中。例如,A类创建对象(它基本上是用户名/密码屏幕)。当他们关闭应用程序时,我希望appdelegate的applicationdidEnterBackground从该对象(在A类中创建)中读取信息。

3 个答案:

答案 0 :(得分:1)

您有几个选择:

  1. 将您的对象设为App Delegate上的属性

  2. 将其设为singleton

答案 1 :(得分:1)

  1. 其中一个选项是创建单身人士:https://developer.apple.com/library/mac/documentation/general/conceptual/devpedia-cocoacore/Singleton.html

  2. 您也可以简单地将这些数据写入NSUserDefaults或文件中,然后再读取 - 如果您只是偶尔使用它,那就更好了。

  3. 将此作为视图的公共属性并从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"

定义USERDATASINGLETON(UserDataSingleton *)[UserDataSingleton getInstance]

......................你的代码......

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];