使用prepareForSegue传递数据和使用Core Data之间的区别是什么?

时间:2016-12-14 18:50:05

标签: ios swift xcode

两者之间有什么不同吗?我试图找出哪一个更好用,因为它们似乎做同样的事情,或者至少对我来说。我试图在多个视图之间传递数据。

4 个答案:

答案 0 :(得分:4)

Core Data是一个对象数据库,它通常有一个SQL关系数据库作为它的后备存储。它用于存储和操作复杂的数据集,并将它们呈现给用户。

PrepareForSegue是一种在从segue调用新视图控制器之前在视图控制器上调用的方法。您可以使用prepareForSegue()作为将数据传递到即将显示的新视图控制器的方法。

这两件事情很少见。

由于Core Data是一种存储应用程序范围的持久数据的方法,因此您可以让多个视图控制器将数据读取和写入共享的Core Data数据库,并以此方式在视图控制器之间传递信息,但这就是比较结果。

使用类比,Core Data是一个文件柜,办公室里的每个人都可以访问。如果职员在文件柜中存档某些信息,则将来任何其他员工都可以找到该文件并获取信息,公司中有权访问该文件的其他人也可以。 PrepareForSegue是两个特定电话号码之间的短信。它在特定的人之间传输一次或仅一次的瞬态信息。

编辑:

还有其他选项可以在视图控制器之间传递信息。

查看我在这个主题上创建的问题/答案主题:

How do you share data between view controllers and other objects in Swift?

答案 1 :(得分:1)

如果您希望数据持久,那么您必须使用SQLite3,核心数据或类似领域。

如果您只想传递从一个viewController到另一个viewController的数据,那么您可以通过prepareForSegue

这样做

答案 2 :(得分:0)

PrepareForSegue将在两个viewControllers之间传递(临时)数据。 CoreData是一个库,允许您在应用程序中存储数据,并随时随地重复使用。

答案 3 :(得分:0)

PrepareForSegue允许您获取对目标视图的引用,以便您可以传递所需的变量。

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    let viewController = segue!.destinationViewController as ViewController
    //here you can access view variables as viewController.variable
}

CoreData允许您将数据持久保存到SQL数据库,可能不是您想要的。

但要注意,您只能将数据从de origin视图传递到目标视图。