gpt4 book ai didi

iOS - 核心数据 - 成功创建/打开之前

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

概览

我有一个 iOS 项目,在该项目中我将姓名列表存储在 TableView 中。

我理解在打开/创建数据库的那一刻,有一个完成处理程序来执行一个方法。

步骤:

  1. 在我的例子中,第一个屏幕是一个显示名称的表格 View
  2. 有一个 + 按钮(在导航栏上)用于添加新名称,这会将其带到新屏幕以输入详细信息。

关注

我担心的是,如果我在完成处理程序中获取 TableView 的名称,并且如果用户不等待数据库打开并创建一个新名称,在保存它时,数据库可能不会打开/创建。

问题

  1. 如何处理这种情况?
  2. 我错过了什么吗?

最佳答案

真的,在一切都初始化之前,您不应该允许用户更改内容。如果需要一段时间,则只需禁用该功能,直到准备就绪。

在这种情况下很容易。从禁用“添加”按钮开始,然后在完成处理程序中启用它。

您可以编写一个 documentIsReady 方法(它将启用编辑,以及在“一切就绪”时您想要执行的任何其他操作),然后在文档准备好使用时调用它。例如,请参见下面的代码。

    if (![[NSFileManager defaultManager] fileExistsAtPath:[doc.fileURL path]]) {
[doc saveToURL:doc.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {
[self documentIsReady: success];
}];
} else if (doc.documentState == UIDocumentStateClosed) {
[doc openWithCompletionHandler:^(BOOL success) {
[self documentIsReady: success];
}];
} else {
BOOL success = doc.documentState == UIDocumentStateNormal;
[self documentIsReady: success];
}

关于iOS - 核心数据 - 成功创建/打开之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150821/

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