草庐IT

Singleton

全部标签

swift - Swift 1.2 中的单例模式

我以前使用过以下单例模式:classSingleton{classvarsharedInstance:Singleton{structStatic{staticletinstance:Singleton=Singleton()}returnStatic.instance}}当带有Swift1.2的新Xcodebeta发布时,我想尝试新的静态类属性和方法。所以我尝试了类似的东西:classSingleton{staticletsharedInstance:Singleton=Singleton()}在使用它的同时查看调试器,似乎很多单例类的嵌套实例都是由类常量创建的:但是通过分配来看,似

ios - Swift Singleton Init 在 XCTest 中被调用两次

在Swift中,单例初始化器在运行XCTest单元测试时被调用两次。不过,使用Objective-C没有问题,正如预期的那样,init()方法只被调用一次。以下是构建两个测试项目的方法:objective-C单例类创建一个带有测试的空Objective-C项目。添加以下准系统单例:#import"Singleton.h"@implementationSingleton+(Singleton*)sharedInstance{staticSingleton*sharedInstance=nil;staticdispatch_once_tonceToken;dispatch_once(&on

ios - Swift Singleton Init 在 XCTest 中被调用两次

在Swift中,单例初始化器在运行XCTest单元测试时被调用两次。不过,使用Objective-C没有问题,正如预期的那样,init()方法只被调用一次。以下是构建两个测试项目的方法:objective-C单例类创建一个带有测试的空Objective-C项目。添加以下准系统单例:#import"Singleton.h"@implementationSingleton+(Singleton*)sharedInstance{staticSingleton*sharedInstance=nil;staticdispatch_once_tonceToken;dispatch_once(&on

Swift - 在单例类中初始化?

我有一个单例类MyClass用于与第三方sdk的管理工作。在单例中,我有init方法。我的问题是:每次我从像MyClass.shared.mymethod()这样的单例中调用某些东西时,是否调用了init方法,或者为了调用init我必须调用varinstance=MyClass()? 最佳答案 init仅在您第一次调用MyClass.shared时被调用此时MyClass的实例保存在shared静态常量中。例子让我们考虑这个单例类finalclassSingleton{staticletshared=Singleton()priva

Swift - 在单例类中初始化?

我有一个单例类MyClass用于与第三方sdk的管理工作。在单例中,我有init方法。我的问题是:每次我从像MyClass.shared.mymethod()这样的单例中调用某些东西时,是否调用了init方法,或者为了调用init我必须调用varinstance=MyClass()? 最佳答案 init仅在您第一次调用MyClass.shared时被调用此时MyClass的实例保存在shared静态常量中。例子让我们考虑这个单例类finalclassSingleton{staticletshared=Singleton()priva

swift - 有什么理由不在 Swift 中使用单例 "variable"?

2015年9月,以下是您在Swift中创建单例的具体方式:publicclassModel{staticletshared=Model()//(forocdfriends...privateinit(){})functest()->Double{print("yo")}}然后在别处...blahblahModel.shared.test()没问题。然而。我添加这个小东西...publicletmodel=Model.sharedpublicclassModel{staticletshared=Model()functest()->Double{print("yo")}}然后,您只需在整

swift - 有什么理由不在 Swift 中使用单例 "variable"?

2015年9月,以下是您在Swift中创建单例的具体方式:publicclassModel{staticletshared=Model()//(forocdfriends...privateinit(){})functest()->Double{print("yo")}}然后在别处...blahblahModel.shared.test()没问题。然而。我添加这个小东西...publicletmodel=Model.sharedpublicclassModel{staticletshared=Model()functest()->Double{print("yo")}}然后,您只需在整

ios - 什么时候在 Swift 中使用静态常量和变量?

有一些帖子介绍了如何在Swift中为staticconstant和staticvariable编写代码。但不清楚何时使用staticconstant和staticvariable而不是constant和variable。谁能解释一下? 最佳答案 当您将静态var/let定义到类(或结构)中时,该信息将在所有实例(或值)之间共享。分享信息classAnimal{staticvarnums=0init(){Animal.nums+=1}}letdog=Animal()Animal.nums//1letcat=Animal()Animal

ios - 什么时候在 Swift 中使用静态常量和变量?

有一些帖子介绍了如何在Swift中为staticconstant和staticvariable编写代码。但不清楚何时使用staticconstant和staticvariable而不是constant和variable。谁能解释一下? 最佳答案 当您将静态var/let定义到类(或结构)中时,该信息将在所有实例(或值)之间共享。分享信息classAnimal{staticvarnums=0init(){Animal.nums+=1}}letdog=Animal()Animal.nums//1letcat=Animal()Animal

ios - 当 Swift 中的变量值发生变化时执行方法

我需要在变量值改变时执行函数。我有一个单例类,其中包含一个名为labelChange的共享变量。此变量的值取自另一个名为Model的类。我有两个VC类,其中一个有一个按钮和一个标签,第二个只有一个按钮。当按下第一个VC类中的按钮时,我将使用此函数更新标签:funcupdateLabel(){self.label.text=SharingManager.sharedInstance.labelChange}但我想在labelChange的值发生变化时调用相同的方法。因此,在单击按钮时,我只会更新labelChange值,当发生这种情况时,我想用labelChange的新值更新标签。同样在