在Xcode中搜索API

时间:2013-02-27 23:03:19

标签: iphone objective-c api xcode4.5

我正在开发一个使用API​​从http://www.recipepuppy.com/about/api/查找食谱的iPhone应用程序。

必须将三个参数放入返回结果中。有i,q和p,其中我是成分,q在普通搜索查询中,p是页面#。我能够专门添加这些参数,然后将结果加载到Xcode中的表视图中。

我还希望实现一种搜索,允许用户根据他们的感觉搜索食谱并返回结果。有人能指出我如何做到这一点的正确方向。我知道我将不得不接受用户输入的内容并将其放入字符串中,但如何将该字符串实现到URL的参数中?

3 个答案:

答案 0 :(得分:1)

回答你的问题:

  

我知道我将不得不接受用户输入的内容并将其放入字符串中,但如何将该字符串实现到URL的参数中?

您可以使用NSString的stringWithFormat方法。例如:

NSString *ingredients = @"ingredients";
NSString *query = @"soups";
NSString *page = @"1";

NSString *url = [NSString stringWithFormat:@"http://www.recipepuppy.com/api/?i=%@&q=%@&p=%@",ingredients,query,page];

在使用此网址之前,建议您对其进行网址编码。

NSString *encodedURL = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

现在您已拥有自己的URL,只需启动与Web的连接(NSURLConnection,AFNetworking,您的选择),解析返回的数据,并将其加载到数组中以显示在表视图中。

答案 1 :(得分:1)

要构建一个通过网络进行JSON通信的可靠应用程序,您可以使用JSONModel库。它为您提供数据模型,并负责向您的API服务发送和接收JSON。

您可以查看GitHub页面: https://github.com/icanzilb/JSONModel/

或者关于如何将YouTube JSON API与JSONModel一起使用的示例: http://www.touch-code-magazine.com/how-to-make-a-youtube-app-using-mgbox-and-jsonmodel/

在GitHub页面上有更多代码示例。祝你好运:)

(披露:我是JSONModel的作者)

答案 2 :(得分:0)

我会将AFNetworking用于您的所有网络请求: https://github.com/AFNetworking/AFNetworking

要使请求只构造一个NSString并将其发送出去

[NSString stringWithFormat:@"http://www.recipepuppy.com/api/?i=%@&q=%@&p=%d", self.ingredients, self.query, self.page]