我不希望用户第一次启动我的应用程序时没有找到空表。我可以创建应该在表中可见的数据。但这应该在哪里发生呢?我会尝试,例如B.在viewDidLoad,然后数据生成比预期更频繁,逻辑上。第一次出发时应该做一次。我使用coredata和diffabledatasource。
要知道我的应用程序是否第一次运行,我通常做的一件事是在User Defaults中存储一个值。您还可以存储应用程序的执行次数,然后根据该值实现逻辑。我把你留在这里,一如既往。
使用用户默认设置,我使用这个很棒的库:SwiftyUserDefaults
创建一个名为(例如)
的文件UserDefaults.swift
在此文件中放入以下代码:
import Foundation
import SwiftyUserDefaults
// Define app user defaults keys
extension DefaultsKeys {
var isFirstAppLaunch: DefaultsKey<Bool> { .init("isFirstAppLaunch", defaultValue: true) }
}
接下来,在你的视图控制器viewDidLoad中你可以实现这个:
import SwiftyUserDefaults
override func viewDidLoad() {
super.viewDidLoad()
self.fillDataInFirstAppLaunch()
}
func fillDataInFirstAppLaunch() {
// If first execution, then fill CoreData with default values
if Defaults.isFirstAppLaunch {
// Set to false to run this code only once (the first app launch)
Defaults.isFirstAppLaunch = false
// Implement your logic here to fill CoreData
}
}