0

I have an array that you can add items to. Though when I exit the app the records are not saved. How would I do this.

Here is my appdelgate file becausde that is where my NSMutableArray is held

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

so far all i've got is:

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

please say if you want more code snippets or files.

2 Answers2

0

To preserve the data, you write it to a file on disk and then load that file when the application is started again.

Chuck
  • 234,037
  • 30
  • 302
  • 389
0

This is how I have done it in my apps.

  • Create your array and save it to NSdictonary object
  • Then store your NSDictonary to your apps documents directory.
  • When your app launches then find your NSDictonary file object and read the array out of it.

The advantage of using NSDictonary is that you can store multiple arrays (in case you are storing multiple patient info).

Here are some sample answers to get you started.

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?

Community
  • 1
  • 1
Sam B
  • 27,273
  • 15
  • 84
  • 121