您的位置:首页 > 其它

【OC学习-30】NSUserDefaults把数据存储在本地的一种方式

2014-09-09 20:55 417 查看
我们先创建一个NSUserDefaults对象(其实类似于一个字典),然后把数据写入到这个对象中,然后把这个对象里面的数据保存在本地。然后我们把这些代码删除掉,重新创建一个对象来调用在本地的数据,看是否能调出,如果能,说明之前已经成功把数据本地化了。

(1)我们创建一个空的application。



(2)把AppDelegate.m下面的那些函数都删除掉。在第一个函数里面补充如下代码,然后点击运行。

#import "AppDelegate.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
//以下是新添加的代码
NSArray *arr1=@[@"111",@"222"];
NSUserDefaults *userDef=[NSUserDefaults standardUserDefaults];//这个对象其实类似字典,着也是一个单例的例子
[userDef setObject:arr1 forKey:@"array"];
[userDef setInteger:123 forKey:@"number"];
[userDef synchronize];//把数据同步到本地

return YES;
}

@end

(3)把上面代码删除,然后添加如下代码,点击运行。
#import "AppDelegate.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
//以下是新增代码
//看数据是否已经在本地,即注销上述语句,在本地调用数据
NSUserDefaults *userDefault=[NSUserDefaults standardUserDefaults];
NSInteger *num1=[userDefault integerForKey:@"number"];
NSArray *arr2=[userDefault objectForKey:@"array"];
NSLog(@"%d,%@",num1,arr2);
return YES;
}
@end

(4)运行结果:
123,(
111,
222
)

我们把第一次添加的代码已经删除后,第二次代码运行时还能调出数据,说明数据已经存储在本地了。
(5)其实这个数据应该保存在一个.plist为后缀的文件中,可惜没找到这个文件,或者是找到了,但是没看到数据,亦可能是已经保存了源文件了,可能就没必要单独创建个新文件保存了,这个做项目的时候以后再慢慢找。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: