ios - 在 Swift 应用程序中访问 Objective-C sharedInstance

标签 ios objective-c swift singleton

我正在用 Swift 编写一个依赖于 Obj-C 库的应用程序,FRDStravaClient 需要是一个 sharedInstance。实例化 sharedInstance 并在我的整个应用程序中使用它的最佳方式是什么?

@implementation FRDStravaClient

+(FRDStravaClient *) sharedInstance
{
    static dispatch_once_t once;
    static id instance;
    dispatch_once(&once, ^{
        instance = [[self alloc] init];
    });
    return instance;
}

为了继续前进,我定义了一个结构,因此我有一个引用我的实例的全局变量。但是我读到的所有内容都在谈论全局变量是多么令人厌恶

struct EvilGlobalVars {
    static var stravaClient = FRDStravaClient()
    static var authToken = NSUserDefaults.standardUserDefaults().stringForKey("authToken")
}

最佳答案

如果您如上所述创建了一个 sharedInstance,您可以在 Swift 中以 FRDStravaClient.sharedInstance() 的形式访问它。您不需要全局结构。

关于ios - 在 Swift 应用程序中访问 Objective-C sharedInstance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28074702/

相关文章:

iphone - UITableViewController 不会执行 UIDeviceOrientationPortraitUpsideDown 方向

swift - 如何将 NSNib.Name 传递给 Swift/Cocoa 中的窗口 Controller

ios - 如何将数据从 TableView 单元格传输到 View Controller

ios - 当用户在 ios 13.0 中单击登录按钮时,Facebook 登录总是被取消,但在 ios 12.0 或更小的 swift 中完全工作正常

ios - iOS 中使用 Twitter API 的简单 GET 请求

ios - 更新 xcode 7.3 后找不到 sqlite3.dylib

ios - 为什么 XCTest 在 UITableViewCell 中公开一个随机的 otherElement? (并表现出其他不一致之处)

json - Swift 和 Codable : Encodable tree struct terminating in values that obey custom protocol

ios - 没有 Storyboard的自定义 TableViewCell

ios - 在 ios 项目中添加解析时遇到问题