草庐IT

Singleton

全部标签

c# - 我应该将应用程序范围的对象传递给需要它的对象,还是应该使用单例?

在我的特定情况下,我通过嵌套的ViewController向下传递一个“facebook”对象(即MonoTouch.FacebookConnect.Facebook的一个实例),它正在向项目添加一些不错的代码。在AppDelegate中实例化后,对象总是只有一个实例,并且在应用程序中的大多数ViewController中都使用它。所有使用facebook对象的ViewController在开头都有这样的东西:publicclassMyViewController:UIViewController{Facebookfacebook;publicMyViewController(Face

iphone - 单例 managedObjectContext

我想使用单例UIApplication来访问AppDelegate的managedObjectContext。但是当我写[[[UIApplicationsharedApplication]delegate]managedObjectContext]或[[[UIApplicationsharedApplication]delegate]__managedObjectContext]它不起作用。但是这条线工作正常:NSLog(@"SeekingfortheAppDelegate:%@",[[[UIApplicationsharedApplication]delegate]class]);你

android - 在 iOS 中管理核心对象

我的任务是在iOS上移植Android应用程序。不幸的是,我以前从未编写过iOS应用程序,所以我有一些基本问题。在Android中,我们编写的应用维护了几个不同的核心对象,我们在扩展android.app.Application的类中经常使用这些对象。当我们需要访问这些对象时,我们会调用getApplication();在这个类中,我们存储了两个自定义对象字典、一个ArrayList和一些bool值、整数和字符串。谁能告诉我在iOS中执行此操作的正确方法?我查看了一个包含所有字典、数组列表和其他数据的单例类,但我读到这个单例将在应用程序运行的整个过程中存在于内存中。在Android中,

ios - 在 Objective-C 中使用类似 C 的静态变量是不好的做法吗?

我想要做的就是为我的(流捕获)应用程序创建一个实用程序类,它可以从我的网站上获取设置。我想从其他文件调用它作为一个简单的[RemoteConfigupdateSettings];我的目标是使用这个远程配置实用程序,而无需为我获取远程设置的每种情况创建对象。关于ObjectiveC中的静态/类变量和方法的信息是模糊的并且非常自以为是,所以经过大量的试验,我得到了这个工作。但它看起来很有趣,这让我觉得有些不对劲。RemoteConfig.h只是声明了+(void)updateSettings方法。这是我的RemoteConfig.m:#import"RemoteConfig.h"stati

ios - 单例实例自动释放的可能性

我正在创建单例实例如下:+(MySingleton*)sharedInstance{staticMySingletonsharedObject=nil;staticdispatch_once_tpredicate=0;dispatch_once(&predicate,^{sharedObject=[[MySingletonalloc]init];});returnsharedObject;}sharedObject自动释放的可能性有多大?我如何确定sharedObject将保留在内存中直到应用程序终止? 最佳答案 正如另一个答案正确

objective-c - 选择单例还是类别?

在我的应用程序的早期,当我的经验比现在少得多时,我想用我自己的自定义动画为ViewController之间的一些转换增添趣味。不知道从哪里开始,我四处寻找像MVC这样可以随时从几乎任何Controller访问的模式,结果证明,单例是可行的方法。我没有意识到的是,似乎对单例模式存在着强烈的、有充分理由的仇恨,我自己也开始明白为什么,但这不是重点。所以,过了一会儿,我决定将我完全相同的实现移到UINavigationController上的一个类别中(毕竟,它处理转换!),保留原始类以进行比较,并且想知道哪种方法最有效。在彻底测试了这两种实现之后,我可以毫无疑问地说它们在各个方面都是平等的

iphone - Objective-C - 优化这个单例模式?

我在网上找到了那个单例模式。在我看来它有很多可以优化的地方。-在sharedMySingleton方法中,不需要调用retain吗?我不确定...-如果不是,为什么在allocWithZone中有保留?-@synchronized有什么用。NSAssert认为这个block可以被调用很多次,所以如果是,应该有更多的代码来释放以前的内存,或者清楚地退出block而不仅仅是NSAsserting,如果不是,为什么会有这个NSAssert?-sharedMySingleton和alloc之间的链似乎很奇怪。我给自己写了类似的东西:+(MySingleton*)sharedMySingleto

ios - 我试图让 UILabel 在 UIScrollView 内部滚动,但它不滚动

这是我的.m-(void)viewDidLoad{[superviewDidLoad];[self.scrollViewaddSubview:self.contentView];self.scrollView.contentSize=self.contentView.bounds.size;NSNumberFormatter*numberFormatter=[[NSNumberFormatteralloc]init];NSMutableArray*arr=[[NSMutableArrayalloc]init];arr=[SingletongetArray];NSString*str=[

如何在 Kotlin 中创建单例类?

Singleton是一个全局对象,可以从应用程序的任何地方访问。本文展示了在Kotlin中创建它的不同方法。在Kotlin中,您可以使用对象声明来实现单例。但是,如果你不知道这个对象关键字,你可能会做这样的事情。常规单例classSingletonprivateconstructor(){companionobject{@Volatileprivatelateinitvarinstance:SingletonfungetInstance():Singleton{synchronized(this){if(!::instance.isInitialized){instance=Singleton

ios - 在 Singleton Objective C 中删除 NSNotificationCenter 的观察者

快速提问:我有一个单例类,它注册了几个NSNotifications。由于单例会持续整个应用程序的生命周期。我必须实现吗[NSNotificationCenterdefaultCenter]removeObserver:self]在我的单例类中?在iOS中处理NSNotification中心的正确方法是什么?谢谢 最佳答案 不,在这种情况下您不需要停止观察。真正的单例使用的内存唯一一次被释放是在程序退出时。当程序退出时,它会继续并释放所有一直在使用的内存和资源。 关于ios-在Singl