草庐IT

Singleton

全部标签

ios - EXC_BAD_ACCESS 到 Typhoon Singleton 引用

我正在使用TyphoonFramework来集成我的所有核心组件。我正在处理我的数据层(使用FMDB而不是CoreData)。我有一个LocalDataStore类,用于处理SQLite的数据读写。这是一个具有设置数据库的初始化方法的单例类。然后我有一个引用它的PlayerDAO。当我启动应用程序时,会创建LocalDataStore并调用初始化方法。然后它会创建DAO类,当它尝试访问LocalDataStore时,我收到EXC_BAD_ACCESS错误。在启动方案中打开“启用僵尸对象”,我得到一个额外的错误:-[myapp.SQLiteLocalStoreretain]:发送到释放实

swift - 在 Swift 中,是否有像 self 这样的关键字,但用于类?

classmySuperClass{staticvarsharedInstance=mySuperClass()vartest="hello"}在这个小片段中,我将静态变量设置为mySuperClass()以创建一个简单的单例。有没有办法不使用类名mySuperClass来做到这一点?我问,因为我想子类化这样的东西,并让子类创建一个它自己的sharedInstance,而不是它所做的父类(superclass)的。完整代码在这里(Playground可用):importCocoaclassmySuperClass{staticvarsharedInstance=mySuperClass

ios - 如何从共享类获取 JSON 响应数据到 ViewController?

我没有使用Alamofire,所以我想在SharedClass中使用JSONpost方法,我想将我的api名称和所有参数发送到该函数。最后我想得到回应。我试过了,但没有用。如果不正确,请纠正我,或者如果有任何其他选项可用,请建议我。我在SharedClass中的代码funcpostRequestFunction(apiName:String,parameters:String)->[String:Any]{varlocalURL="hostname/public/index.php/v/***?"localURL=localURL.replacingOccurrences(of:"**

Swift - 如何将单例设置为零

我正在快速编写一个应用程序,并使用单例在整个应用程序中共享一个类对象User。我希望能够在用户注销时将此单例设置为“nil”,以便当他们重新登录时旧属性不再存在(即名称、用户名等)。我希望有一种简单的方法可以将单例设置回nil,而不必将每个属性都设置为nil。这是我在应用程序中用作User.activeUser的用户类:classUser:NSObject{classvaractiveUser:User?{structStatic{staticletinstance:User=User()}returnStatic.instance}}我怎样才能改变它,这样下面的代码就不会给我一个警告

swift - 使用 Swift 单例

我有以下单例类:classSingleton{staticletsharedInstance=Singleton()}我在网上几乎找不到关于如何使用单例模式的大量快速实现的信息。我之前在Objective-C中的一个应用程序中使用过它,但对我来说它似乎更直接。例如,如果我想创建一个可以在应用程序中的任何地方使用的自定义对象数组,我将如何声明它以及如何实现它。在我的objective-CSingleton类中,我在类文件中创建全局变量,然后像这样实现它:singletonClass*mySingleton=[singletonClasssharedsingletonClass];mySi

【Android,kotlin设计模式】Java的单例在Kotlin的5种实现

Kotlin.Java的单例在Kotlin的5种实现1.饿汉式2.懒汉式3.线程安全的懒汉式4.双重校验锁式静态内部类式1.饿汉式JavapublicclassSingleton{privatestaticSingletoninstance=newSingleton();privateSingleton(){}publicstaticSingletongetInstance(){returninstance;}}KotlinobjectSingleton{}2.懒汉式JavapublicclassSingleton{privatestaticSingletoninstance;privateS

ios - 将闭包作为参数传递给单例时的 Swift 内存管理

我知道closure可以创建retaincycles如果它被分配给一个类的属性并且该类的实例属性在内部使用关闭。但是1)闭包没有分配给类属性而是作为参数传递给单例的类方法怎么办?2)在这种情况下如何管理内存?在我的Controller(UIViewController)的方法中,我有类似的东西:MySingleton.classMethod(parameters...,completion:{()->Voidin/**doingstuffhere*/}) 最佳答案 如果您没有将闭包分配给一个属性,而只是将其传递给一个函数,您需要考虑

swift - Swift 协议(protocol)可以是单例的吗?

我尝试过对单例使用单行单例初始化(如在类中),下面是一些错误截图:你能帮我理解这些错误吗,还有,单例协议(protocol)是否可能?提前致谢 最佳答案 协议(protocol)本身不能是单例。那没有任何意义。协议(protocol)是其他类型遵守的东西。但是,如果您想声明符合Singleton的事物遵循某些规则,例如提供sharedInstance,那很好。您的语法不正确。您需要将var与get一起使用,而不是let。protocolSingleton{staticvarsharedInstance:Self{get}}原则上,您

ios - 在 Swift 中,将 "anywhere"注册为协议(protocol)的委托(delegate)

我有一个复杂的View类,classSnap:UIViewController,UIScrollViewDelegate{}最终结果是用户可以选择一种颜色...protocolSnapProtocol:class{funccolorPicked(i:Int)}classSnap:UIViewController,UIScrollViewDelegate{someDelegate.colorPicked(blah)}那么谁来处理它。假设您肯定知道响应者链上游有一些东西,甚至遍历容器View,它是SnapProtocol。如果是这样,您可以使用thislovelycode调用它varr:U

swift - 为什么允许我创建多个 Singleton 实例,即使它的构造函数是私有(private)的?

下面的代码是我学习Swift的一本书中的单例示例。创建只有一个该类型对象的单例的目的不是吗?在Playground上,我已经能够创建多个GameManager(vara=GameManager()、varb=GameManager()等.)顺便说一句,我知道只有一个defaultManager对象,并且由于它是静态和常量(let),所以无法更改。但是我无法使用私有(private)构造函数,因为我能够创建多个GameManager。classGameManager{staticletdefaultManager=GameManager()vargameScore=0varsaveSta