我正在使用Swift和Objective C代码。我最近从
更改了我的单例Objective C类 - (id)init {
if (self = [super init]) {
[self initSharedData];
}
return self;
}
+ (SharedData *)sharedData {
static dispatch_once_t onceToken = 0;
dispatch_once(&onceToken, ^{ g_sharedInfo = [[SharedData alloc] init]; });
return g_sharedInfo;
}
- (void)initSharedData {
self.databaseManager = [[DatabaseManager alloc] init];
}
到
required override init()
{
super.init()
self.initSharedData()
}
class var sharedData : SharedData {
struct Singleton {
static let instance = SharedData()
}
return Singleton.instance
}
func initSharedData(){
self.databaseManager = DatabaseManager()
}
正如您所知,我使用databasemanager和user创建了一个对象实例,因此我可以在整个App中使用它。
然而,自从我用Swift单例类替换Objective C单例类后,我开始在我的App中的其他Objective C类中获得跟随错误。如何正确解决此问题?我不相信我应该在我的目标c类中导入databasemanager类来解决问题。
'接收器类型'DatabaseManager'例如消息是转发 声明'
答案 0 :(得分:0)
我不相信我应该在我的目标c类中导入databasemanager类来解决问题。
但您必须导入DatabaseManager才能解决问题。前向声明只是告诉编译器DatabaseManager
是一个类的一种方式,而不是 - 比如说 - 函数或常量。