Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Objective-C项目中使用Swift文件中的Objective-C单例_Objective C_Objective C Swift Bridge - Fatal编程技术网

在Objective-C项目中使用Swift文件中的Objective-C单例

在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

我已经用Objective-C编写了我的项目。我正在学习桥接

我成功地将Swift融入我的Objective-C项目。我在Objective-CVC和SwiftVC之间进行了一些VC推送。一切都按它应该的那样工作

但是,我在Swift文件中创建了对我的Objective-CNetworkManager的引用(我使用了单例模式),如下所示:

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