2011-01-26 38 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