开发者

How to keep my data in a array-iphone sdk

I'm trying to create an application, and in that I'm receiving some contents from net and loading into and array, if I quit and run the app again i'm losing the data. How can I store the data in the app itself. Should I use some kind of database? If so which one and how can I implement that? I need to store only some string variables.

EDIT: My app is tabbar based app, and have two tabs. Loading the arrays in one tab and loading that array in a table in the other VC. once I load the array and move to the second tab, the table is loaded with the array. If i go back and add few more values and then if i check, the added datas is not displayed in the table. And also, when I quit the app the table lose all the values, I need to keep the values in the table, even after i quit the app. How can I do that? here is my code: in viewdidload:

 NSUserDefaults *simplePlistDb = [NSUserDefaults standardUserDefaults];
        [simplePlistDb setBool:YES forKey:@"isItWorking"];
        [simplePlistDb setObject:alertList forKey:@"myArray"];
        [simplePlistDb synchronize];

in cellforrowatindexpath:-

NSUserDefaults *simplePlistDb = [NSUserDefaults standardUserDefaults];
    BOOL flag = [simplePlistDb boolForKey:@"isItWorking"];
    if (flag)
    {
        NSArray *myArray = [simplePlistDb o开发者_运维百科bjectForKey:@"myArray"];
        for (NSString *str in myArray){
            NSLog(@"Str:%@", str);
            [loadArray addObject:str];
        }
        cell.textLabel.text = [loadArray objectAtIndex:indexPath.row];
    }

Thank you.


You will want to look into Core Data if you want to save a decent amount of data to the iPhone. However, if not, you can just load the items in the array into a plist and load them from there at launch.

Plist Writing: How to create a new custom property list in iPhone Applications

CoreData: http://www.raywenderlich.com/934/core-data-tutorial-getting-started

Edit--->

As Nekto said, you can also use NSUserDefaults, but I advise mainly using NSUserDefaults for simple NSStrings and integers.


I think for your purposes NSUserDefaults will be enough : NSUserDefaults Class Reference.

Examples:

// save
NSUserDefaults *simplePlistDb = [NSUserDefaults standardUserDefaults];
[simplePlistDb setBool:YES forKey:@"isItWorking"];
[simplePlistDb setObject:[NSArray arrayWithObjects:@"very", @"cool", nil]];
[simplePlistDb synchronize];

// restore
NSUserDefaults *simplePlistDb = [NSUserDefaults standardUserDefaults];
BOOL flag = [simplePlistDb boolForKey:@"isItWorking"];
if (flag)
{
    NSArray *myArray = [simplePlistDb objectForKey:@"myArray"];
    for (NSString *str in myArray)
        NSLog(@"%@", str);
}


You can use NSUserDefaults in order to store your data till the time your app is installed in your device.

How to write in NSuserDefaults:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"yourObject1" forKey:@"correspopndingKey1"];
[defaults setObject:@"yourObject2" forKey:@"correspopndingKey2"];
[defaults synchronize];

How to read from NSuserDefaults:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *temp1 = [defaults objectForKey:@"correspopndingKey1"];
NSString *temp2 = [defaults objectForKey:@"correspopndingKey2"];

You can store NSArray in a similar way.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:objArray forKey:@"correspopndingKey"];
[defaults synchronize];
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜