添加 minizip 中断 Objective-C

Posted

技术标签:

【中文标题】添加 minizip 中断 Objective-C【英文标题】:Adding minizip breaks Objective-C 【发布时间】:2012-02-22 16:04:15 【问题描述】:

我正在尝试在WikiPage 之后将ZipArchive 添加到我的项目中。我已经将它添加到我的项目中并尝试构建,但现在 NSObjRuntime.h、NSObject.h 和无数其他头文件都存在解析问题!

我已经包含了我的工作区的屏幕截图

还有错误...

有关该项目的更多详细信息。

针对 ios5 构建。 使用 ARC。

【问题讨论】:

【参考方案1】:

所以我终于弄明白了。我没有添加组然后将文件添加到这些组,而是将 ZipArchive 文件夹拖放到项目中。在弹出的对话框中...我选择了“为任何添加的文件夹创建文件夹引用”。

这给了我工作区中的 BLUE 文件夹,现在一切正常。

不过,现在我需要弄清楚文件夹引用和组引用之间的区别。

【讨论】:

这允许我的项目编译。但现在我无法添加 #import "ZipArchive.h" 它说找不到文件。 没关系。我知道文件夹和组之间的区别是什么。我必须把#import "Encoding/ZipArchive/ZipArchive.h" 因为我添加的文件夹在我项目的 Encoding 文件夹中。该文件夹与我的文件添加的位置相关。【参考方案2】:

我们找到的解决方案是在“身份和类型”选项卡中将 minizip 文件夹中所有 .c 文件的文件类型从 C-Source 更改为 Objective-C 源在右侧。

它对我们有用。

祝你好运

【讨论】:

【参考方案3】:

这个问题可能是由 C 文件中的 Objective-C 引起的。这可能是由 PCH 中的导入引起的。您需要将这些包装在 #ifdef __OBJC__

#ifdef __OBJC__
#import "SomeObjecitveCFile.h"
#endif

【讨论】:

【参考方案4】:

将 ZipArchive 文件夹拖放到项目中对我不起作用。反而, 我将 minizip 文件夹拖放到我分别添加 ZipArchive.h 和 ZipArchive.m 文件的同一文件夹中。我选择了“为任何添加的文件夹创建文件夹引用”。 原因:在 ZipArchive.h 文件中我们这样做

 #include "minizip/zip.h"
 #import "AppDelegate.h"
 #include "minizip/unzip.h"

【讨论】:

以上是关于添加 minizip 中断 Objective-C的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发之压缩与解压文件

使用minizip解压缩多个文件(基于zlib)

重复符号错误:带有 Objective-Zip、ZLib、MiniZip 的 Flurry SDK 5.0.0

未能找到 zlib 构建 b/c 符号

使用 MiniZip 库读取 omni.jar 存档文件

geochunk1.minizip是啥文件