【问题标题】:Querying a database using Cocoa使用 Cocoa 查询数据库
【发布时间】:2010-05-11 15:38:32
【问题描述】:

在我开始免责声明之前,我应该添加一点免责声明,我对 Cocoa 开发和一般 C 语言比较陌生。

但是,我确实有 Aaron Hillegass 编写的“Mac OS X 第 3 版可可编程”的副本,我正在研究并用作基础,如果有人有副本,我正在使用页面上的“AmaZone”示例346作为模板和基础。


我尝试开发一个小型客户端应用程序,该应用程序接受一个搜索字符串,然后相应地显示来自数据库的结果。

数据库将包含一个:文件列表、它们的位置、描述和创建日期,因此目前字段编号和类型将保持不变。


在 SO 上环顾四周后,我看到了类似的东西:

NSURL *myURL = [NSURL URLWithString:@"http://www.myserver.com/results.php"];
NSArray *sqlResults = [[NSArray alloc] initWithContentsOfURL:myURL];

我以前用过php,所以看到这个后我目前的想法是在服务器上创建一个查询数据库的php脚本,并创建一个XML输出。

使用 XML 响应,只需解析它。

这样可以吗?是否有任何人可以看到但我看不到的重大陷阱。

我知道有一些数据库包,我已经查看了 BaseTen for Postgres,但对这方面相对较新,不想太过分了。

或者如果其他人有任何其他建议和想法,他们将不胜感激。

【问题讨论】:

  • 我建议使用 JSON 而不是 XML 与您的 Web 服务进行交互。它在服务器端和客户端都更轻量级且更易于使用。这里有一个 Cocoa 框架:code.google.com/p/json-framework

标签: php database cocoa macos


【解决方案1】:

如果您的数据库在服务器上,那么这是一种合理的方法,并且正是 Apple 使用 iTunes 所做的(只是他们使用 WebObjects,而不是 php,有足够的理由)。

如果数据库在您的 Mac OS X 机器上,那么您应该查看 CoreData(也在 Aaron 的书中,在不同的章节中)。

为了改进您的示例,您应该在 NSURLConnection 上使用异步方法,这将涉及查看委托协议。

【讨论】:

  • 我认为你的意思是异步方法。
猜你喜欢
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 2018-03-11
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多