你如何处理你的应用程序中的单例对象?

时间:2010-09-28 18:13:19

标签: iphone objective-c oop architecture uiapplication

我想到的第一种方法是将singleton对象作为属性放在appDelegate对象中。通过这种方式,您可以使用

从任何地方访问它
#import "myAppDelegate.h"
// ...
[[(myAppDelegate *)[UIApplication sharedApplication] delegate] SingletonObj]

缺点是你必须明确地转换和导入你的委托的标题来告诉你正在使用的类,SingletonObj实际上是委托的属性。而且我认为这会让代码闻起来有点味道。

第二种方法是创建一个合法的单身人士类。然而,这需要更多的工作。我个人认为单一的Singleton课程已经足够了。

我不是程序员,所以我非常感谢对我的推理进行更正,以及对该主题的看法。

3 个答案:

答案 0 :(得分:5)

单身人士通常通过+sharedInstance等方法在课堂上处理。

Here is a good write-up

答案 1 :(得分:1)

我在网上找到了xcode template以便于单例生成。

答案 2 :(得分:0)

最佳做法是只在UIApplicationDelegate课程中放置AppDelegate相关内容。 Evarr。

决定你是否真的需要一个单身人士。如果你这样做,那就做一个合法的单身人士课。从长远来看,更容易;你有没有注意到输入一行的怪物需要多长时间,你试图从AppDelegate中取出单身对象? AGH。

(另外,只是一点点成语:类以大写字母开头,方法以小写字母开头;因此,问题意味着[[(MyAppDelegate *)[UIApplication sharedApplication] delegate] singletonObj]。)