使用未解析的标识符“Singleton”Swift 3
Posted
技术标签:
【中文标题】使用未解析的标识符“Singleton”Swift 3【英文标题】:Use of unresolved identifier 'Singleton' Swift 3 【发布时间】:2016-10-24 09:19:55 【问题描述】:这是我的以下代码:
private static var __once: () =
Singleton.instance = RtccManager()
if let instance = Singleton.instance
instance.connectionParameters = instance.flattenConnectionParametersOverride(nil)
instance.currentStat = .sta_notConnected
DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.background).async
instance.rtccConnect([:])
()
var connectionParameters: [String : Any] = [:]
var currentStat: AppStatus = AppStatus.sta_notConnected
class var sharedInstance: RtccManager
struct Singleton
static var instance: RtccManager? = nil
static var token: Int = 0
_ = RtccManager.__once
return Singleton.instance!
Singleton.instance = RtccManager()
和
if let instance = Singleton.instance
错误是:使用未解析的标识符“Singleton” 迁移到 Swift 3.0 后出现此错误
关于如何解决此错误的任何想法?
【问题讨论】:
您在sharedInstance
内定义了Singleton
... 范围错误。
@EricAya:非常感谢,我误会了:)
【参考方案1】:
如果您要迁移代码,最好将您的单例创建模式调整为 Apple 在其 docs 中建议的新方式。
这是一个例子
public class RtccManager
/*
Nested types
*/
public enum AppStatus
case sta_connected
case sta_notConnected
public static let sharedInstance: RtccManager = RtccManager()
public private(set) var connectionParameters: [String: Any]
public private(set) var currentStat: AppStatus
private init()
self.connectionParameters = [String: Any]()
// flattenConnectionParametersOverride
self.currentStat = .sta_notConnected
【讨论】:
以上是关于使用未解析的标识符“Singleton”Swift 3的主要内容,如果未能解决你的问题,请参考以下文章
iOS [Swift]:解析 Facebook 登录“使用未解析的标识符‘权限’”