我正在并排使用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类的跟随错误。如何适当解决此问题?我不认为我应该在 objective-c 类中导入databasemanager类来解决此问题。
最佳答案
但是您必须导入DatabaseManager才能解决该问题。前向声明只是一种告诉编译器DatabaseManager
是一个类,而不是一个函数或常量的方法。
关于ios - iOS Swift : How to resolve Reciever type 'DatabaseManager' for instance message is a forward declaration?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29065247/