gpt4 book ai didi

iphone - Objective C iPhone 开发,保存和检索 NSMutableArray

转载 作者:行者123 更新时间:2023-11-28 18:43:28 24 4
gpt4 key购买 nike

我是 iPhone 开发的新手,我正在使用 XCode 4.2我试图保存一个 NSMutable 数组,这样当我关闭应用程序并重新打开它时,数据仍然存在我正在使用这两个功能:

-(void)saveData{
[NSKeyedArchiver archiveRootObject:[data copy] toFile:[self dataFilePath]];
}
- (void)loadData
{
data = [NSKeyedUnarchiver unarchiveObjectWithFile:self.dataFilePath];
}

但我发现了两个主要问题:1-当我切换 View 并返回时,数据消失了2- 当我完全退出应用程序时(即我双击主按钮并将其从正在运行的应用程序列表中删除)数据也没有被删除

我发现我可以使用这两个 NSMutableArray 方法:writeToFileinitWithContentsOfFile 但我不知道在哪里调用它们(是在我向 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];
}

关于iphone - Objective C iPhone 开发,保存和检索 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8344114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com