2010-06-07 68 views
0

我該如何解決「無法找到接口聲明'someEnumeration', 'interfaceName'的超類」錯誤?如何修復錯誤 - 「@interface interfaceName:someEnumeration」給出錯誤「無法找到接口''someEnumeration'..」

什麼步驟會重現問題?

  1. 編譯Wsdl2ObjC

  2. 瞄準groupwise.wsdl文件

  3. 固定的輸出csource代碼非有效的文件名,如 「的.h」 + 「的.m」 和源文件內 對象

  4. 向上移動其中一個@interface之前,它在代碼中被使用了!

預期產量是多少? 正在工作

你看到了什麼呢?

33錯誤。繼承自類的typedef枚舉對象的3個類似繼承。所有的錯誤都是典型:

typedef enum types_StatusTrackingOptions { 
types_StatusTrackingOptions_none = 0, 
types_StatusTrackingOptions_None, 
types_StatusTrackingOptions_Delivered, 
types_StatusTrackingOptions_DeliveredAndOpened, 
types_StatusTrackingOptions_All, 
} types_StatusTrackingOptions; 

types_StatusTrackingOptions types_StatusTrackingOptions_enumFromString(NSString *string); 
NSString * types_StatusTrackingOptions_stringFromEnum(types_StatusTrackingOptions enumValue); 
@interface types_StatusTracking : types_StatusTrackingOptions { ... 

,在這裏我有錯誤「找不到接口聲明 爲‘types_StatusTrackingOptions’,‘types_StatusTracking’的父」。

您使用的是什麼版本的產品?在什麼操作系統上? Wsdl2ObjC - rev 168,OS - Mac OS X 10.6.2,iPhone SDK - 3.2,模擬器 - v 3.1.2 - 3.1.3,wsdl - GroupWise v.8, NDK發佈2008-12-23,wsdl並附上xsd文件。

P.S. GroupWise.wsdl + .xsd文件可從http://code.google.com/p/wsdl2objc/issues/detail?id=99下載

回答

1

你(他們?)試圖做什麼?您不能從enum繼承。只有Objective-C類可以被繼承。

也許你想組成而不是繼承?

@interface types_StatusTracking : NSObject { 
    types_StatusTrackingOptions options; 
} 
@property (assign) types_StatusTrackingOptions options; 
... 
@end 
+0

謝謝! 我知道Wsdl2ObjC轉換器和它們各自的作者在從enum繼承類時廢話。 嗯,我會嘗試這個,也許這會工作... – 2010-06-07 11:51:53