如何在iphone的objective-c中实现单例

时间:2011-06-29 09:33:31

标签: iphone objective-c singleton

我想在iPhone应用程序中创建我的对象单例。在objective-c中实现它的正确方法是什么。

4 个答案:

答案 0 :(得分:2)

我是这样做的。

+(MyClass*) mySingleton 
{
     static MyClass* theSignleton = nil;

     @synchronized([MyClass class])
     {
         if (theSingleton == nil)
         {
             theSingleton = [[MyClass alloc] init];
         }
     }
     return theSingleton; 
}

这并不能阻止人们意外地创建非单例实例,但我认为设计你的课程更好,这样非单身人士不会打破课堂而不是试图阻止非单身人士。这使得它们在单元测试中更容易处理。

答案 1 :(得分:1)

Taken from

Singleton类是一个需要理解的重要概念,因为它们表现出非常有用的设计模式。这个想法在整个iPhone SDK中使用,例如,UIApplication有一个名为sharedApplication的方法,当从任何地方调用时,它将返回与当前运行的应用程序相关的UIApplication实例。

Implement Singleton Classes in Objective- C .

答案 2 :(得分:0)

我使用matt gallagher http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html写的那个。它的使用非常简单,博客文章是一种完整的教程。

答案 3 :(得分:0)

虽然我不太喜欢C-macros,但我发现这个macro-based singleton synthesizing approach显着