我正在并排使用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/

10-13 04:07