2012-01-25 27 views
10

Đối với dự án tôi đang làm việc, tôi cần giải nén một số tệp nhất định. Đối với điều này, tôi tìm thấy thư viện SSZipArchive. Tôi đã bao gồm điều này trong Xcode 4.2 (Nhấp chuột phải vào thư mục Lớp-> Thêm tệp vào dự án, trong hộp thoại "Sao chép các mục vào thư mục nhóm đích" -checkbox được chọn). Tôi bao gồm thư viện libz (tôi đã thử cả libz và zlib1.2.5). Tôi cố gắng biên soạn và đột nhiên tôi có 20 lỗi:Bạn bao gồm SSZipArchive cho iOS 5 như thế nào?

/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))) 

Đây là tất cả các lỗi trong thư viện lõi, vì vậy có thể đã xảy ra sự cố với thư viện trong Xcode. Tôi quản lý để thu hẹp thủ phạm để thư viện minizip mà SSZipArchive sử dụng (nếu tôi loại bỏ thư viện đó, các lỗi biến mất và trình biên dịch chạy như nó nên), nhưng tôi khá stumped về lý do tại sao điều này gây ra trình biên dịch có rất nhiều vấn đề .

Trả lời

35

Sau nhiều lần đau đầu, tôi đã tìm ra vấn đề là gì. Hóa ra là _Prefix.pch. Tôi hoàn toàn nhìn qua nó, nhưng nó quay ra rằng tôi đã có dòng sau đó:

#import "someclass.h" 

Lớp này đã được nạp với các .c-file của thư viện minizip, dẫn đến tiêu đề Objective-C được bao gồm trong các tệp .c, là thứ mà XCode không thích. Bao bọc các câu lệnh này trong câu lệnh #ifdef đã khắc phục được sự cố:

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

Tôi gặp sự cố tương tự (và thông báo lỗi) sau khi nâng cấp lên Xcode 4.3.1 và iOS 5.1. Dự án được sử dụng để làm việc tốt trước khi ... trình biên dịch mới là nghiêm ngặt hơn bây giờ? – Palimondo

+1

Trình tiết kiệm cuộc sống, cảm ơn rất nhiều – charles

+1

Trình bảo vệ cuộc sống tuyệt đối! Các lỗi được trình bày bởi XCode là BS đơn giản, cảm ơn thần cho StackOverflow :) –

-1

Tham khảo liên kết dưới đây hoạt động với cả ứng dụng mac cũng như mac. Archive and Unarchive from app

+0

OP không yêu cầu các phương án thay thế cho phương pháp của chúng. – Ash

Các vấn đề liên quan