2012-04-17 46 views
2

與ARC一起如何優雅地解決此問題?「PerformSelector命名保留該對象的選擇器」錯誤和ARC

問題是與WSDL2OBJC創建的代碼..我修復了所有其他問題,但是這一次我摸不透..

if ([super respondsToSelector:@selector(initWithCoder:)] && ![self isKindOfClass:[super class]]) { 
    self = [super performSelector:@selector(initWithCoder:) withObject:decoder]; 
} else { 
    self = [super init]; 
} 

在WSDL2OBJC他們在這裏解決了這個問題是這樣的:

「在目標 - >構建Phases->編譯源代碼 對於所有wsdl2objc來源地址:-fno-obcj弧」

但是這實際上不是在代碼修復。只有防止ARC上wSDL2OBJC來源..

回答

0

我決定放棄ARC上WSDL2OBJC和使用編譯器標誌

0

如果你知道超類,你不能簡單地放下這個混亂並直接調用適當的初始化器嗎?

+0

好動態提供超類,所以沒有可能的解決方案有.. – Plato 2012-05-22 13:18:22

2

嘗試此解決方案:

self = [super performSelector:NSSelectorFromString(@"initWithCoder:") withObject:aDecoder]; 
+0

它確實幫助!謝啦! – 2017-11-25 16:17:40