草庐IT

swift - 如何使用 init 变量在 swift 中创建单例

我正在尝试在swift中创建一个单例类,但出现错误“无法创建带有元素标签的单元素元组”我不明白。classGroupObject{//wewantthegroupobjecttobeasingletonvarname:Stringvarid:IntvargroupJsonObject:JSONinit(groupJsonObject:JSON){self.groupJsonObject=groupJsonObjectself.id=groupJsonObject["id"].int!self.name=groupJsonObject["name"].string!}classvarsh

swift - 协议(protocol)定义具有属性的单例

我有以下协议(protocol)来定义具有属性的单例:protocolSingletonProtocol{staticvarshared:SingletonProtocol{get}varvariable:Int{getset}}以及实现此协议(protocol)的以下类:classSingleton:SingletonProtocol{staticletshared:SingletonProtocol=Singleton()varvariable=4}如果我调用:Singleton.shared.variable=5我收到以下错误:change'let'to'var'tomakeit

ios - 如果我使用单例网络服务发出网络请求,是否需要使用 [weak self]?

假设我有一个使用Alamofire的SessionManager的网络单例,如下所示:导入AlamofireclassNetwork{staticletshared=Network()privateinit(){}privatevarsessionManager:SessionManager={letconfiguration=URLSessionConfiguration.defaultconfiguration.httpAdditionalHeaders=SessionManager.defaultHTTPHeadersreturnSessionManager(configurat

objective-c - Objective-C 中的 Swift 单例访问触发 EXC_BAD_INSTRUCTION (EXC_I386_INVOP)

我在Swift4.2中创建了一个单例对象,并试图在Objective-C类中访问它(调用几个方法)。但是,在Objective-C中调用实例时,应用程序崩溃并显示以下内容:EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0)我的Swift单例定义并没有什么不寻常的,当仅从其他Swift类调用时它工作正常。这是它的样子:@objcpublicstaticletsharedManager=SessionManager()项目中的语言互操作性似乎也不是问题:从Objective-C访问非单例文件时不会导致崩溃。我也不确定这个Objectiv

swift - 传递参数以初始化单例

我正在尝试创建一个用户单例,每次用户登录或注册时,它都会使用用户的用户名、电子邮件和用户ID进行初始化。我有类似的事情,但我不确定如何处理staticletsharedInstance:classUserSingle{varuserName:Stringvaremail:StringvaruserID:IntstaticletsharedInstance=UserSingle()privateinit(userName:String,email:String,userID:Int){self.userName=userNameself.email=emailself.userID=us

swift - 理解 Swift 中的单例

我正在尝试在SWIFT中创建一个单例,这是我目前所做的classGlobal{classvarsharedInstance:Global{structsingleton{staticletinstance:Global=Global()}returnsingleton.instance}}vara=Global.sharedInstancevarb=Global()ifa===b{println("PointingtoSameInstance")}else{println("Pointingtodifferentinstance")}我已经使用计算类型属性创建了一个单例(从另一个sta

swift - 始终对 Swift 单例使用 [unowned self] 安全吗?

由于共享的单例实例将始终存在,我们能否在该单例类的所有闭包中安全地使用[unownedself]? 最佳答案 当然,这是安全的。但这不是一个好的理由。使用弱引用还是强引用应该根据你所写的函数中的内存管理特性而定。例如,如果一个闭包被对象强引用,那么闭包应该捕获对该对象的弱引用;这是安全的,因为没有其他人引用闭包,所以它只能在主对象还活着的时候执行,等等。如果没有保留周期,闭包会被提供给一个单独的API,这样它就不会被绑定(bind)到主对象的生命周期,那么闭包应该对主对象有强引用。这个推理同样适用于单例和非单例。

ios - 在 Swift 中为我的 Core Data 默认堆栈创建一个单例

我正在尝试为CoreData使用单例。以前,我已经成功地通过创建一个类CoreDataStack.h/.m来做到这一点,在Objective-C中调用下面的默认堆栈方法及其各自的托管对象上下文,并且可以工作很好://RETURNSCoreDataStack+(instancetype)defaultStack{staticCoreDataStack*defaultStack;staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{defaultStack=[[selfalloc]init];});returndefaultSt

ios - KVO 在单例属性(property)上?

大家好,我正在尝试在Singleton类中的一个字符串属性上实现KVO。我目前在尝试添加观察者时遇到了一些错误,希望有人能告诉我我做错了什么。下面显示了我的单例类。classUser:NSObject{staticletcurrentUser=User()privateoverrideinit(){}varpictureString:String?}在单独的ViewController的viewDidLoad中,我尝试像这样向pictureString变量添加观察者。self.addObserver(self,forKeyPath:#keyPath(User.currentUser.p

swift - firebase 对象应该是 swift 中的单例吗?

firebasesdk的iosSwift实现中,firebase对象是否应该存储在单例中?或者它是否自动管理和关闭View之间的连接?例如,在每个View中创建一个firebase对象会创建多个套接字连接吗?只保留一个firebase对象会更有效吗?letref=Firebase(url:"https://"+kFireBaseHost+".firebaseio.com/") 最佳答案 您不需要创建单例。在幕后,Firebase管理单个连接,如果您有多个Firebase对象,或者即使您在一个位置有多个观察者,Firebase也会适本