你如何在IOS 5中加入SSZipArchive? [英] How do you include SSZipArchive for IOS 5?

查看:178
本文介绍了你如何在IOS 5中加入SSZipArchive?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于我正在处理的项目,我需要解压缩某些文件。为此,我找到了图书馆 SSZipArchive 。我将其包含在Xcode 4.2中(右键单击Classes文件夹 - >将文件添加到项目中,在对话框中将将项目复制到目标组的文件夹中 - 选中复选框)。我包含了libz库(我已经尝试了libz和zlib1.2.5)。我尝试编译,突然间我遇到了20个错误:

For the project I'm working on I needed to unzip certain files. For this, I found the library SSZipArchive. I included this in Xcode 4.2 (Right-click on the Classes folder->Add files to project, with in the dialogue the "Copy items into destination group's folder"-checkbox checked). I include the libz library (I've tried both libz and zlib1.2.5). I try to compile and suddenly I've got 20 errors:

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:311:1: error: expected identifier or '(' [1]
 @class NSString, Protocol;
 ^    
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:313:19: error: unknown type name 'NSString' [1]
 FOUNDATION_EXPORT NSString *NSStringFromSelector(SEL aSelector);
                   ^
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:314:44: error: unknown type name 'NSString' [1]
 FOUNDATION_EXPORT SEL NSSelectorFromString(NSString *aSelectorName);
                                            ^
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:316:19: error: unknown type name 'NSString' [1]
 FOUNDATION_EXPORT NSString *NSStringFromClass(Class aClass);
                   ^
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:317:43: error: unknown type name 'NSString' [1]
 FOUNDATION_EXPORT Class NSClassFromString(NSString *aClassName);
                                           ^
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:319:19: error: unknown type name 'NSString' [1]
 FOUNDATION_EXPORT NSString *NSStringFromProtocol(Protocol *proto) NS_AVAILABLE(10_5, 2_0);
                   ^
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:319:50: error: unknown type name 'Protocol' [1]
 FOUNDATION_EXPORT NSString *NSStringFromProtocol(Protocol *proto) NS_AVAILABLE(10_5, 2_0);
                                                  ^
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:320:19: error: unknown type name 'Protocol' [1]
 FOUNDATION_EXPORT Protocol *NSProtocolFromString(NSString *namestr) NS_AVAILABLE(10_5, 2_0);
                   ^
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:320:50: error: unknown type name 'NSString' [1]
 FOUNDATION_EXPORT Protocol *NSProtocolFromString(NSString *namestr) NS_AVAILABLE(10_5, 2_0);
                                                  ^
 /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:324:30: error: unknown type name 'NSString' [1]
 FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
                              ^
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:324:53:{324:53-324:76}: error: format argument not an NSString [3]
 FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
                                                     ^~~~~~~~~~~~~~~~~~~~~~~
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:85:49: note: instantiated from:
         #define NS_FORMAT_FUNCTION(F,A) __attribute__((format(__NSString__, F, A)))
                                                        ^
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:325:31: error: unknown type name 'NSString' [1]
 FOUNDATION_EXPORT void NSLogv(NSString *format, va_list args) NS_FORMAT_FUNCTION(1,0);
                               ^
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:325:63:{325:63-325:86}: error: format argument not an NSString [3]
 FOUNDATION_EXPORT void NSLogv(NSString *format, va_list args) NS_FORMAT_FUNCTION(1,0);
                                                               ^~~~~~~~~~~~~~~~~~~~~~~
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:85:49: note: instantiated from:
         #define NS_FORMAT_FUNCTION(F,A) __attribute__((format(__NSString__, F, A)))

这些都是核心库中的错误,所以在Xcode中包含库可能会出错。我设法将罪魁祸首缩小到SSZipArchive使用的minizip库(如果我删除该库,错误消失,编译器就像应该的那样运行),但我很难理解为什么这会导致编译器出现这么多问题。

These are all errors in the core library, so probably something went wrong with including the library in Xcode. I managed to narrow down the culprit to the minizip library that SSZipArchive uses (if I remove that library, the errors disappear and the compiler runs like it should), but I'm pretty stumped on why this causes the compiler to have so many issues.

推荐答案

经历了很多麻烦之后,我发现了问题所在。原来是_Prefix.pch。我完全看了看,但事实证明我在那里有以下一行:

After a lot of headaches, I figured out what was the problem. It turned out to be _Prefix.pch. I totally looked over it, but it turns out that I had the following line there:

#import "someclass.h"

此类正在使用minizip库的.c文件加载,从而生成Objective-C标题包含在.c文件中,这是XCode不喜欢的。将这些语句包装在#ifdef语句中修复了问题:

This class was being loaded in with the .c-files of the minizip library, resulting in Objective-C headers being included in .c-files, which was something that XCode did not like. Wrapping these statements in an #ifdef statement fixed the problem:

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

这篇关于你如何在IOS 5中加入SSZipArchive?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆