2011-10-21 99 views
0

當我將Xcode從4.0升級到4.2(使用iOS 5.0 SDK)時,我開始在我的代碼中使用代碼時收到多個警告:Xcode 4.2(iOS 5.0)中的「不兼容的指針類型」警告

self.delegate = self; 

警告:從 'MyClass的*'

這裏分配給 'NSObject的*' 不兼容的指針類型,self.delegate設爲MyDelegate對象& selfMyClass對象。

@protocol MyDelegate <NSObject> 
- (void)myResponse:(NSDictionary *)response; 
- (void)myError:(id)errorData; 
@end 


@interface MyClass : NSObject <MyDelegate> { 

} 

這些警告不在4.0中。

我該怎麼做才能壓制這些警告?

+0

那麼你的.h文件中是什麼樣子?它是否聲明該類實現了''? – Sean

+2

另外,你爲什麼要宣佈你的班級的委託本身?這不是打敗了代表團的目的嗎? – Sean

+0

我聲明屬性@property(nonatomic,assign)NSObject * delegate;在MyClass.h中MyDelegate協議也是在同一個接口類中定義的。通常,委託設置爲其他對象,但由於某些業務邏輯,我需要通過MyClass對象本身執行委託方法。 – Abhinav

回答

-1

你應該申報的委託這樣

id<MyDelegate> delegate; 

和財產

@property(nonatomic,assign) id <MyDelegate> delegate; 
相關問題