0

如何解决“找不到接口声明'someEnumeration','interfaceName'的超类”错误?

哪些步骤将重现该问题?

  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, Simulator - v. 3.1.2 - 3.1.3, wsdl - 用于 GroupWise v.8, NDK 于 2008 年 12 月 23 日发布,wsdl 和 xsd文件附上。

PS GroupWise.wsdl + .xsd 文件可以从http://code.google.com/p/wsdl2objc/issues/detail?id=99下载

4

1 回答 1

1

你(他们?)想做什么?您不能从enum. 只有 Objective-C 类可以被继承。

也许您想要组合而不是继承?

@interface types_StatusTracking : NSObject {
   types_StatusTrackingOptions options;
}
@property (assign) types_StatusTrackingOptions options;
...
@end
于 2010-06-07T11:29:16.217 回答