wsdl2objc NSString错误

时间:2011-03-26 19:34:19

标签: objective-c wsdl nsstring subclass

在mi wsdl2objc生成的代码中我有:

@interface tns6_EntityType : NSString  {

/* elements */
/* attributes */
    NSNumber * id_;
}

但是,当我得到这种类型的元素时,我收到以下错误:

  

2011-03-26 21:23:02.428 Pez [47129:a0f]处理键输入时检测到异常。

     

2011-03-26 21:23:02.428 Pez [47129:a0f] * -length仅为抽象类定义。定义 - [tns6_EntityType length]!

有谁知道如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:0)

看起来你需要在课程-length上为tns6_EntityType添加自己的实现。请记住,在Objective-C中,NSString是 class cluster 的抽象父级,因此直接对其​​进行子类化有时会产生奇怪的效果。如果您继续收到这样的错误,请仔细阅读并按照其说明进行操作。

答案 1 :(得分:0)

生成wsdl代码到objC时遇到了同样的问题。

您可以在此处找到此问题的解决方案:https://stackoverflow.com/a/21331422/1891772

在我的例子中,我使用了ARC。据我所知,wsdl2objc不支持ARC所以你需要改变它我的例子:

  1. 将“stringHolder”属性“strong”更改为“retain”
  2. 将“autorelease”添加到属性“stringHolder”初始化
  3. 的代码行
  4. 在dealloc方法中添加“self.stringHolder = nil”