0

您好,我想知道在服务器上处理外部数据库的最佳方法是什么,例如 apache 上的本地数据库。或者当你使用 MYSQL 时类似。我想我很困惑如何在 iOS 上进行数据库工作。

谢谢,非常感谢。

4

4 回答 4

2

Parse.com 在这方面提供了一些有趣的选项——你可以上传一个 csv 并用它创建一个关系数据库,然后通过他们的 SDK 在你的应用程序中访问它,只需几行代码。

我不为他们工作,但绝对值得一试作为解决方案。

于 2012-10-10T03:39:01.890 回答
2

正如 Tom Jowett 之前指出的,如果您不确定自己真正需要什么,请从 Parse 开始。

如果您需要在本地(即在手机上)持久化数据,那么 Core Data 非常好。Core Data 不是严格意义上的 ORM,而是图形管理器,但它会为您在本地存储数据(您不必担心实际的 db)。您也可以直接使用 SQLite,但不应该这样做(除非您有充分的理由这样做)。

另一方面,如果您只是从服务器消费数据,那么看看 parse.com,如果不符合您的需求,您可以随时编写自己的 RESTful 服务器,并使用您选择的数据库.

于 2012-10-10T03:59:07.270 回答
1

你不能在 iOS 中直接访问 MYSQL,尽管你可以做到。Apple 不会批准您的应用程序。

所以我们使用Web Service来访问数据。这意味着您通过特定的 URL 和参数请求您的 Web 服务器。并让您的网络服务器查询您的数据库,并最终以plaintext,XMLJSON格式输出。当你得到结果时,你可以parse把它变成一个像NSDictionaryor的对象NSArray

我相信最常见的方法是使用ASIHTTPRequestSBJson框架。它快速可靠。(虽然 ASIHTTPRequest 已经停止)

假设您在 apache 服务器上使用 PHP。

对于 php - api.php:

$mysqlArray = mysql_query($query);
$resultObjs = array();
while($mysqlObj = mysql_fetch_object($mysqlArray)){
    array_push($resultObjs,$mysqlObj);
}

echo json_encode($mysqlObj);

使用 ASIHTTPRequest 获取数据

NSURL *api = [NSURL URLWithString:@"http://YOURSERVER.com/api.php"];
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:api];
NSString *resultString = [request responseString];
[request release];

使用将其解析为对象SBJson

SBJsonParser *parser = [[SBJsonParser alloc] init];
NSArray *resultObjs = (NSArray*)[parser objectWithString:resultString];
[parser release];

这是一个基本概念,请在他们的主页上阅读更多示例,并在谷歌上搜索更多示例。希望对您有所帮助。

于 2012-10-10T04:07:36.147 回答
1

只需在您的服务器上使用 PHP 页面,并使用 GET 变量通过NSURLConnection. 您可以使用 API,但此解决方案要简单得多。

如果您需要从服务器获取信息,您可以简单地执行以下操作:

NSString* returnedInfo = [NSString stringWithContentsOfURL:[NSURL urlWithString:@"http://www.myserver.com/myaccessorpage.php?a=sdf&s=dfg"]];

您也可以在后台线程上运行它以避免应用程序挂起。

这可能不是实现您正在做的事情的最有效方法,但它绝对是最简单的方法。

希望这可以帮助您入门。

于 2012-10-10T03:28:55.680 回答