如何从其他Swift文件中访问变量



我希望能够在另一个文件中使用一个变量。

例如,我在一个视图控制器中创建了一系列核心数据项,但是我想在另一个视图控制器中使用它。

核心数据是管理应用程序中的模型层对象。为什么在一个视图控制器中创建核心数据项数组?

根据核心数据编程指南,您应该进行初始化核心数据堆栈的初始化。

就像

class MyDataController: NSObject {
    var persistentContainer: NSPersistentContainer!
    //  ...
}

您几乎可以在每个文件中获取它。就像:

let moc = …
let employeesFetch = NSFetchRequest(entityName: "Employee")
do {
    let fetchedEmployees = try moc.executeFetchRequest(employeesFetch) as! [EmployeeMO]
} catch {
    fatalError("Failed to fetch employees: (error)")
}

您可以在viewControllerb中创建一个属性,

class ViewControllerB: UIViewController {
    var dataItems: [DataItem] = []
}

因此,当您从ViewControllera导航到ViewControllerb时,您可以将数据设置为以下类似的属性,

let viewControllerB = ViewControllerB()
viewControllerB.dataItems = [...]
navigationController?.pushViewController(viewControllerB, animated: true)

希望这会有所帮助!

最新更新