iOS:在iOS中处理数据库的最佳方法是什么?

时间:2012-10-10 03:24:46

标签: iphone objective-c ios database

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

谢谢,非常感谢。

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

正如Tom Jowett先前指出的那样,如果你不确定你真正需要什么,请从Parse开始。

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

另一方面,如果您只是要从服务器中使用数据,那么请给parse.com看一下,如果不符合您的需求,您可以随时编写自己的RESTful服务器,并使用db你的选择。

答案 2 :(得分:1)

只需在服务器上使用PHP页面,并通过NSURLConnection使用GET变量引用它们。您可以使用API​​,但此解决方案更简单。

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

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

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

这可能不是实现目标的最有效方法,但绝对是最简单的方式。

希望这有助于您开始使用。

答案 3 :(得分:1)

尽管您可以这样做,但您无法在iOS中直接访问MYSQL。 Apple不会批准您的应用。

因此我们使用Web Service来访问数据。这意味着您通过specfic URL和参数请求您的Web服务器。让您的Web服务器查询您的数据库,最后以plaintextXMLJSON格式输出它们。获得结果后,您可以parse将其转换为NSDictionaryNSArray等对象。

我认为最常见的方法是使用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];

这是一个基本概念,在他们的主页上阅读更多示例,并在谷歌中添加更多示例。希望它有所帮助。