如何将IOS 5的SSZipArchive包括在内?
对于我正在进行的项目,我需要解压缩某些文件。为此,我找到了图书馆。我将其包含在Xcode 4.2中(右键单击Classes文件夹->Add files to project,在对话框中选中“将项目复制到目标组的文件夹”复选框)。我包括libz库(我已经尝试了libz和zlib1.2.5)。我试图编译,但突然出现了20个错误:如何将IOS 5的SSZipArchive包括在内?,ios,objective-c,xcode,zip,ssziparchive,Ios,Objective C,Xcode,Zip,Ssziparchive,对于我正在进行的项目,我需要解压缩某些文件。为此,我找到了图书馆。我将其包含在Xcode 4.2中(右键单击Classes文件夹->Add files to project,在对话框中选中“将项目复制到目标组的文件夹”复选框)。我包括libz库(我已经尝试了libz和zlib1.2.5)。我试图编译,但突然出现了20个错误: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Sy
/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库(如果我删除该库,错误就会消失,编译器也会正常运行),但我很困惑,为什么这会导致编译器出现这么多问题。在经历了很多头痛之后,我发现了问题所在。结果是_Prefix.pch。我仔细看了一遍,结果发现我有以下几行:
#import "someclass.h"
这个类与minizip库的.c文件一起加载,导致Objective-c头包含在.c文件中,这是XCode不喜欢的。将这些语句包装到#ifdef语句中修复了问题:
#ifdef __OBJC__
#import "someclass.h"
#endif
请参阅下面的链接,该链接适用于iphone和mac应用程序 在升级到Xcode 4.3.1和iOS 5.1之后,我遇到了同样的问题(和错误消息)。在…之前,这个项目一直运作良好。。。新的编译器现在更严格了?绝对是救命稻草!XCode呈现的错误是简单的BS,感谢上帝StackOverflow:)OP并没有要求替代他们的方法。