使用Core Data for First iPhone App?

时间:2011-03-22 00:17:37

标签: iphone objective-c web-applications core-data

我正在制作我的第一个iPhone应用程序。很多UI都已完成,因此我剩下的大部分内容都是数据库内容。

这是一个简单的健身房日志应用程序,我希望用户能够在线查看他们的数据。它是否可以通过门户网站进行编辑或只读,取决于实施的难度。'

我目前将所有练习存储在加载到表格中的plist中。我想拥有用户帐户(注册)和基本的配置文件视图等。我需要snyc和store的大多数数据都是NSStrings和NSDate以及NS int等,没什么太习惯的。

CoreData能满足我的需求吗?如果我使用CoreData,我可以通过HTML / CSS创建我的Web门户并使用MySQL或SQLite进行同步吗?

我对数据库的东西很陌生,今晚我将阅读Apple的CoreData文档。

2 个答案:

答案 0 :(得分:4)

核心数据非常适合在您的设备上存储数据,但看起来您希望将数据同步到网络服务。你绝对不应该尝试来回发送核心数据对象(即.sqlite文件)。看看JSON,有一些库可用,但我使用了Stig Brautaset的json-framework,它是一个很棒的库。

只要您可以将数据放入数组或字典中,就可以将数据转换为JSON字符串以便传输到Web服务。接收JSON数据更加容易,因为JSON解析器为您创建了数组和字典等对象,然后您可以以正常方式访问它们。

XML是另一种选择,但由于可用的库不如JSON库那么好,我认为它不易使用。

答案 1 :(得分:1)

您应该为您的应用程序使用Core Data,因为Core Data不是数据库系统,而是用于创建Model-View-Controller设计应用程序的模型层的对象图管理系统(而Apple API几乎要求设计图案。)

模型层是程序的实际内容。这是应用程序实用程序的核心实际逻辑。其他所有内容只是用户,服务器或其他应用程序的界面。

例如,在您的应用中,您的模型图层将模拟某种与健身房锻炼相关的现实世界对象,事件或条件,例如锻炼时间,日程安排,代表,练习系列等。这些真实世界之间的所有 逻辑 关系将在数据模型中编码,而不是在其他地方编码。核心数据使其易于实施。

一旦配置了数据模型,那么完成应用程序所需要做的就是拍打一个或多个接口。在您的情况下,听起来您需要设备上的UI,某个服务器的JSON接口以及可能通过Wifi运行的应用程序内的http服务器。如果您的数据模型已经完全配置,那么实现每个接口变得微不足道,最重要的是,在一个界面中进行的更改会立即反映在所有其他界面中。

因此,学习核心数据是件好事。事实上掌握它是件好事。一旦熟练,它将让您简单地制作应用程序。

然而,尽管如此,不要让追求优雅/完美的设计妨碍运输。你的代码可能不够优雅,但是如果你的用户永远不会受到影响,那么它仍然会成功。只是坐在开发者驱动器上的漂亮代码对任何人都没有好处。让它与你现在所知道的一起工作并把它拿出来。你以后总是可以折射。

核心数据确实具有学习曲线,因为它非常强大。如果你打算做很多应用程序,你应该花时间去学习它,但是,再一次,不要让学习曲线妨碍运输。