将项目添加到阵列后存储数据

时间:2013-07-05 17:09:01

标签: iphone ios objective-c nsmutablearray store

我有一个可以添加项目的数组。虽然当我退出应用程序时,记录不会被保存。我该怎么做呢。

这是我的appdelgate文件becausde,这是我的NSMutableArray举行的地方

AppDelegate.m:

#import "LSAppDelegate.h"

#import "LSViewController.h"

#import "Patient.h"

#import "PRViewController.h"

@implementation LSAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    Patient *patient = [[Patient alloc]init];
    patient.patientName = @"Patient Name";
    patient.patientSurname = @"Patient Surname";
    patient.patientDoB = @"Patient Date of Birth";
    patient.patientHomeNumber = @"Patient Home No";
    patient.patientMobileNumber = @"Patient Mobile No";
    patient.patientEmail = @"Patient Email Address";
    patient.patientAddress = @"Patient Address";
    patient.patientPicture = [UIImage imageNamed:@"patientPicture.jpg"];

    // Treatments

    patient.treatmentName = @"Treatment Name";
    patient.treatmentDate = @"Treatment Date";
    patient.treatmentType = @"Treatment Type";

    self.patients = [[NSMutableArray alloc]
                     initWithObjects:patient, nil];

        // Override point for customization after application launch.
    self.viewController = [[LSViewController alloc] initWithNibName:@"LSViewController" bundle:nil];
    self.navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
    [[UINavigationBar appearance] setTintColor:[UIColor brownColor]];
    self.window.rootViewController = self.navController;
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}

- (void)applicationWillTerminate:(UIApplication *)application
{

}
- (NSString *)applicationDocumentsDirectory {
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

@end
到目前为止,我所拥有的只是:

- (NSString *)applicationDocumentsDirectory {
        return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    }

请说明您是否需要更多代码段或文件。

2 个答案:

答案 0 :(得分:0)

要保留数据,请将其写入磁盘上的文件,然后在再次启动应用程序时加载该文件。

答案 1 :(得分:0)

这就是我在我的应用中完成的方式。

  • 创建数组并将其保存到NSdictonary对象
  • 然后将您的NSDictonary存储到您的应用文档目录。
  • 当您的应用启动时,找到您的NSDictonary文件对象并从中读取数组。

使用NSDictonary的优点是您可以存储多个阵列(以防您存储多个患者信息)。

以下是一些示例答案,可帮助您入门。

How to store an NSArray in an NSDictionary?

is it possible to save NSMutableArray or NSDictionary data as file in iOS?

How can we store into an NSDictionary? What is the difference between NSDictionary and NSMutableDictionary?