两者之间有什么不同吗?我试图找出哪一个更好用,因为它们似乎做同样的事情,或者至少对我来说。我试图在多个视图之间传递数据。
答案 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视图传递到目标视图。