在 Xcode 中搜索 API

问题描述 投票:0回答:3

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

返回结果中必须放入三个参数。有

i
q
p
,其中
i
是成分,
q
在普通搜索查询中,
p
是页码。我可以专门添加这些参数,然后将结果加载到 Xcode 中的表格视图中。

我还想实现一个搜索,允许用户根据自己的喜好搜索食谱并返回结果。有人可以指出我如何做到这一点的正确方向吗?我知道我必须将用户输入的内容放入字符串中,但是如何将该字符串实现到 URL 的参数中?

ios objective-c xcode4
3个回答
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];

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

NSString *encodedURL = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

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


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 的作者)


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] 
© www.soinside.com 2019 - 2024. All rights reserved.