2011-01-26 76 views
0

我有這個類在那裏我有.M像這樣的.HiPhone - 類站看到超類的參考

@interface myClass : UIImageView <UIGestureRecognizerDelegate>{ 

    @public id referenceOne; 
    @public id referenceTwo; 

} 

@property (nonatomic,retain) id referenceOne; 
@property (nonatomic,retain) id referenceTwo; 

@synthesize referenceOne, referenceTwo; 

這個類沒有委託協議。

我是基於這一個其他類。對於這些類別之一,我已經定義了一個委託協議,並有我的執行文件是這樣的:

@protocol MyBasedClassDelegate <NSObject> 
@optional 

- (void) doStuff; 

@end 

@interface MyBasedClass : myClass { 
    id<MyBasedClassDelegate> _delegate; 
} 

@property(nonatomic,assign) id<MyBasedClassDelegate> delegate; 

和.M我,只要我定義這個MyBasedClassDelegate類停有

@synthesize delegate; 

看到從myClass繼承的referenceOne和referenceTwo id。現在Xcode說這些沒有聲明。如果我禁用協議,它會再次看到參考。

這是爲什麼,我該如何解決?

謝謝。

+0

有什麼確切的錯誤信息? – 2011-01-26 02:53:58

回答

2

您這裏有一個錯誤:

@interface MyBasedClass : myClass { 
    id<MyBasedClassDelegate> _delegate; 
} 

重命名爲

@interface MyBasedClass : myClass { 
    id<MyBasedClassDelegate> delegate; 
} 

OR

做@synthesize委託= _delegate;而不是

編輯:

很適合我

myClass.h

#import <Foundation/Foundation.h> 


@interface myClass : UIImageView <UIGestureRecognizerDelegate> { 
    id referenceOne; 
    id referenceTwo; 
} 

@property (nonatomic,retain) id referenceOne; 
@property (nonatomic,retain) id referenceTwo; 

@end 

myClass.m

#import "myClass.h" 
@implementation myClass 
@synthesize referenceOne, referenceTwo; 
@end 

MyBasedClass.h

#import <Foundation/Foundation.h> 
#import "myClass.h" 

@protocol MyBasedClassDelegate <NSObject> 
@optional 

- (void) doStuff; 

@end 

@interface MyBasedClass : myClass { 
    id<MyBasedClassDelegate> delegate; 
} 

@property(nonatomic,assign) id<MyBasedClassDelegate> delegate; 

@end 

MyBasedClass.m

#import "MyBasedClass.h" 


@implementation MyBasedClass 
@synthesize delegate; 
-(void) dosmth { 
    referenceOne = nil; 
} 
@end 
1

如果你改變了變量名「_delegate」,以「委託」,我認爲它可能工作。 (或者,註釋合成線,它也應該工作)。

我今天早些時候遇到了類似的事情 - 如果你合成不存在的實例變量的屬性,編譯器不抱怨,但由於某種原因,你再也看不到超類的變量。

對我來說,找到http://www.iphonedevsdk.com/forum/iphone-sdk-development/53261-unable-access-superclass-member-variables-subclass-implementation.html,幫助。

+0

好的,我有一個錯字。謝謝,但我解決了錯誤,問題仍然存在... – SpaceDog 2011-01-26 02:18:45

+0

然後不確定。抱歉。我複製了你提供的代碼,修正了錯字,它對我來說編譯得很好。 – 2011-01-26 02:31:28