1

我想到的第一种方法是将单例对象作为属性放在 appDelegate 对象中。通过这种方式,您可以使用从任何地方访问它

#import "myAppDelegate.h"
// ...
[[(myAppDelegate *)[UIApplication sharedApplication] delegate] SingletonObj]

缺点是您必须显式转换并导入委托的标头,以告诉您正在使用的类 SingletonObj 实际上是委托的属性。而且我认为这会让代码有点味道。

第二种方法是创建一个合法的单例类。然而,这需要更多的工作。而且我个人认为,一个 Singleton 类是绰绰有余的。

我不是程序员,因此我将非常感谢您对我的推理和对该主题的看法的更正。

4

3 回答 3

5

单例通常通过类似的方法在类中处理+sharedInstance

这是一篇很好的文章

于 2010-09-28T18:16:04.900 回答
1

我在网上找到了一个用于轻松生成单例的xcode 模板。

于 2010-10-12T13:30:38.170 回答
0

最佳做法是只UIApplicationDelegate在课堂上放 - 相关的东西AppDelegate。埃瓦尔。

决定你是否真的需要一个单身人士。如果你这样做,只需创建一个合法的单例类。从长远来看会更容易;您是否注意到键入该行怪物需要多长时间,您试图将单例对象从 中取出AppDelegate?啊。

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

于 2010-09-28T18:18:44.150 回答