非ARC项目中的SBJson

3
我正在尝试将SBJson库包含到不使用ARC的项目中。由于我无法包含源文件,因此我遵循了描述的步骤:这里。但是,我最终遇到了此SO问题中描述的相同问题。
当我将libsbjson-ios.a添加到我的项目中时,它显示为红色,这意味着该库丢失了。 enter image description here 尽管项目的编译进行得很好,但是当我尝试添加#import "SBJson.h"时,我会收到"SBJson.h: no such file or directory"错误。
我该如何解决这个问题?我的项目太大了,我不能改变所有内容以使用ARC。

不,还是一样的。问题不在编译本身,只要我不尝试使用实际文件,项目就可以正常编译。 - Maggie
你之前有使用过ASIHTTP吗? - Aklesh Rathaur
红线也可能意味着模拟器架构丢失。如果您为设备构建项目并链接,您的项目是否能够正确构建和链接? - Michael Dautermann
@MichaelDautermann 是的,它可以成功构建。我可以在我的应用程序文件夹的 /Library/Developer/Xcode/DerivedData 产品文件夹中看到该库。 - Maggie
那么,当你为模拟器构建时,这就不起作用了? - Michael Dautermann
显示剩余6条评论
2个回答

1
你只需将所有文件拖到您的项目中,而不是导入库。我建议参见https://github.com/stig/json-framework/并按照readme文件安装到您的项目中。
要在您的项目中使用此功能,请执行以下步骤:
1.从上面的链接下载zip文件。 2.在Finder中,转到src/main/objc文件夹。 3.选择所有文件并将它们拖放到Xcode项目中。 4.选中复制项目到目标组文件夹选项。 5.在您的源文件中使用#import“SBJson.h”。

源代码需要使用ARC编译。 - Maggie
你可以使用fobjc-arc来启用ARC,使用-fno-fobjc-arc来禁用项目中特定类的ARC。请参考https://dev59.com/Xmw15IYBdhLWcg3wtd4g。 - user3121383
或者你可以使用老版本的非ARC版本,正如@Undercover开发者所建议的那样。 - user3121383

0

顺便提一下,一个项目可以仅对某些文件使用ARC,因此您可以使用ARC编译SBJson的类,而将项目的其余部分不使用。

更好的方法是,如果您需要支持iOS4,则只需从CocoaPods使用SBJson。或者,如果您不需要支持iOS4,则切换到NSJSONSerialisation。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接