在Objective-C项目中使用Swift文件中的Objective-C单例
我已经用Objective-C编写了我的项目。我正在学习桥接 我成功地将Swift融入我的Objective-C项目。我在Objective-CVC和SwiftVC之间进行了一些VC推送。一切都按它应该的那样工作 但是,我在Swift文件中创建了对我的Objective-CNetworkManager的引用(我使用了单例模式),如下所示:在Objective-C项目中使用Swift文件中的Objective-C单例,objective-c,objective-c-swift-bridge,Objective C,Objective C Swift Bridge,我已经用Objective-C编写了我的项目。我正在学习桥接 我成功地将Swift融入我的Objective-C项目。我在Objective-CVC和SwiftVC之间进行了一些VC推送。一切都按它应该的那样工作 但是,我在Swift文件中创建了对我的Objective-CNetworkManager的引用(我使用了单例模式),如下所示: let networkManager = NetworkManager.sharedManager() 由于某种原因,我不能使用它的方法 networkMa
let networkManager = NetworkManager.sharedManager()
由于某种原因,我不能使用它的方法
networkManager.getUserInfo() // .getUserInfo() will not appear!
只是想向您展示我是如何创建我的NetworkManager的。我在网上找到了这个解决方案,它非常古老,如果您有更好的解决方案,我将非常乐意获得一些见解:
+ (id)sharedManager {
static NetworkManager *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
-(id)init {
if (self = [super init]) {
someProperty = @"Default Property Value";
self.cache = [[NSCache alloc] init];
}
return self;
}
不确定这里的问题是什么。谢谢大家的帮助。对于那些可能在将来寻找答案的人 我被建议在与Swift桥接时不要使用id类型。我改变了:
+ (id)sharedManager {
到
现在一切都很好。谢谢您的帮助。
+ (NetworkManager *)sharedManager