use*_*935 0 iphone objective-c nsmutablearray ios xcode4.2
我是iPhone开发新手,我正在使用XCode 4.2我试图保存一个NSMutable数组,这样当我关闭应用程序并重新打开它时,数据仍然在那里我使用这两个函数:
-(void)saveData{
[NSKeyedArchiver archiveRootObject:[data copy] toFile:[self dataFilePath]];
}
- (void)loadData
{
data = [NSKeyedUnarchiver unarchiveObjectWithFile:self.dataFilePath];
}
Run Code Online (Sandbox Code Playgroud)
但是我发现了两个主要问题:1-当我切换视图并返回时,当我完全退出应用程序时(即我双击主按钮并将其从正在运行的应用程序列表中删除)数据消失了数据也没有被删除
我发现我可以用这两种方法的NSMutableArray:writeToFile和initWithContentsOfFile ,但我不知道在哪里可以打电话给他们(是,当我将项目添加到UITableView中的?viewDidLoad?
有人可以给我一个示例代码吗?
提前致谢
用于保存数组使用writeToFile:atomically:方法.它会将您的NSArray内容保存为plist文件.要从plist文件加载数组,请使用initWithContentsOfFile:方法.
请注意,这些方法将能够保存你的东西,只有当你的阵列有以下类实例NSString,NSData,NSDate,NSNumber NSArray,或NSDictionary作为项目.
您可以调用以下保存/加载方法
// in view controller implementation
- (void) saveData {
[self.theArray writeToFile: self.filePath automatically:NO];
}
- (void) loadData {
self.theArray = [NSArray arrayWithContentsOfFile: self.filePath];
}
- (void) viewDidLoad {
[super viewDidLoad];
[self loadData];
}
- (void) viewWillDisappear: (BOOL) animated {
[super viewWillDisappear: animated];
[self saveData];
}
// in the UIApplicationDelegate implementation
- (void)applicationWillResignActive:(UIApplication *)application {
[myCustomController saveData];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |