我有以下设置:两个类,一个导入另一个,它们都具有碰巧具有相同名称但不同类型的属性。两个类,相同的属性名称,不同的类型 - >被覆盖
当我尝试访问ClazzB的someColor财产,我得到一个错误:
[[[ClazzB sharedInstance] someColor] CGColor]
错误: 为 'NSString的' 不可见@interface声明选择 'CGColor'
错误清楚地表明它从ClazzA获得财产,问题是为什么?是否有一些奇怪的名字被重写呢?
这里的设置:
@interface ClazzA : NSObject {
@private
NSString* _someColor;
}
@property (nonatomic, copy) NSString* someColor;
ClazzB进口ClazzA并具有相同名称但不同类型的属性。
#import "ClazzA.h"
@interface ClazzB : NSObject {
UIColor* _someColor;
}
@property (nonatomic, strong) UIColor* someColor;
任何帮助非常感谢!
谢谢!
你可以显示你的“sharedInstance”方法的声明吗? – Vitaly 2014-10-18 00:59:42
这是一个单身人士。 '+(id)sharedInstance {static ClazzB * sharedMyManager = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken,^ {sharedMyManager = [[self alloc] init]; }); return sharedMyManager; }' – Stefan 2014-10-18 01:09:09
正如我在下面提到的。不要使用'id'作为这种方法的返回类型。 – Vitaly 2014-10-18 01:10:50