【发布时间】:2020-06-23 13:45:48
【问题描述】:
我正在做一个项目,我应该使用 Core Data 在本地保存数据。
这是我的工作流程:
我有一个bar button item,点击它可以显示最新填写的表格。
- 我应该测试填写的表单数组是否为空,然后应该禁用该按钮。
- 否则,应该启用按钮...
我尝试了这段代码,我从数据库中获取数据并影响到一个数组,但按钮接缝根本不起作用,它永远不会被禁用......
class ViewController: UIViewController {
var userIdentity: UserIDentity = UserIDentity(context: PersistanceService.context)
var identityArray = [UserIDentity]()
override func viewDidLoad() {
super.viewDidLoad()
self.fetchIdentityHistoryArray()
}
func fetchIdentityHistoryArray(){
let fetchRequest: NSFetchRequest<UserIDentity> = UserIDentity.fetchRequest()
do {
let identityArray = try PersistanceService.context.fetch(fetchRequest)
if identityArray.isEmpty {
self.identityHistoryButton.isEnabled = false
}
else {
self.identityHistoryButton.isEnabled = true
}
}
catch {
print("Error fetching sworn statement history !")
}
}
}
所以我有两个问题:
- 我的代码有什么问题?
- 当用户为第一个填写的表单单击“后退按钮”时,我该如何管理,“历史按钮”可以自行刷新并从禁用按钮变为启用按钮?
非常感谢任何帮助。谢谢
【问题讨论】:
-
Hajar,我不完全理解,但是。对于每个 FORM,添加另一个字段,另一条信息,一个可能名为“PageIndex”的整数。所以你制作的第一个表单,将 PageIndex 设置为 0,下一个是 1,依此类推。也许有帮助?
-
它们已经在数据库中被自动索引了。
-
问题是,即使数据库为空,identityArray 也永远不会为空!