2

我正在构建一个简单的 iphone 应用程序,我有几个问题。

我需要解析 API 密钥搜索的结果,并在我的程序中操作它们。该API来自烂番茄,我找不到适用于ARC的解析器。我知道 JSON 工具包适用于以前版本的 XCode,但我真的很喜欢 ARC,并且迄今为止我的应用程序都在使用它。

1) 是否有针对此类结果的可靠解析器,还是我必须手动执行?

我的应用程序的基本结构包括搜索页面和个人物品列表,使用可变的对象数组来填充表格视图。

2) 设计类和实现的最佳方式是什么?我知道这是一个模糊的问题,所以让我更具体一些。我有一个具有多个属性的对象,我想访问远程服务器和烂番茄 API,并在内部存储本地数据。所以我有我的故事板,每个选项卡视图都有一个控制器(有两个)。然后我有我的对象类。我需要专门为它创建一个控制器还是可以在其他控制器中操作(创建和删除)?

我可以提供有关该应用程序的更多细节,我只是感到有点不知所措,因为这是我第一次使用 Xcode。任何帮助,将不胜感激。

4

3 回答 3

0

您可以在 ARC 中不会使用的实现上设置编译器标志。

采用:-fno-objc-arc

在此处输入图像描述

于 2012-05-22T05:12:12.640 回答
0

我可以建议您使用NSJSONSerialization 类。它应该与 ARC 兼容,因为它兼容iOS 5及更高版本。

或者,您可以在您希望将其关闭ARC的文件中将该标志设置为 no 。.m为此,您可以在此处参考一个很好的答案。

于 2012-05-22T05:13:58.707 回答
0

关于第一个问题,您可以在特定文件上关闭 ARC,这允许您在同一个项目中混合启用 ARC 和未启用 ARC 的类,请参考这个问题的答案 How can I disable ARC for a single file in一个专案?

关于第二个问题你有两个不同的类访问相同的 api 服务吗?如果是,我建议您创建一个通用的远程请求类,该类将为您执行请求。

例如:假设我们有 class1(用于 tab1)和 class2(用于 tab2)并且我们有 classCommonRequest(用于两个请求) App 委托将持有对 classCommonRequest 的引用

class1 和 class2 都可以使用

YourAppDelegate *delegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
//get your refrence of request handler class
MyRequestHandler *request = [delegate myRequestHandler];
//then use functions in it
[request fetchSth];

如果您的问题更具体,我可以给您更好的答案:) 我希望这对您有所帮助

于 2012-05-22T05:14:06.240 回答