假设我有一个NSObject AppController:NSObject。使用IB,我将NSObject控件拖到MainMenu.xib中,并将该类指向AppController。由于MainMenu.xib被加载一次并且MainMenu.xib中的对象在应用程序的生命周期内都在内存中,它是否使AppController对象成为单例?
然后我可以将IBOutlet拖到AppDelegate来访问这个单例对象。这看起来很快。这是一种好习惯还是气馁?
我认为标准方法是在类中添加静态AppController * sharedInstance,并使用+(AppController *)sharedAppController进行访问。
答案 0 :(得分:1)
不,它不是单身,因为没有什么能阻止你在代码中创建同一个类的另一个实例。
这只是创建单个实例的便捷方式。
和MainMenu.xib中的对象在应用程序生命周期的内存中
这不是真的。如果没有人保留这些对象(或者在GC下对它们有强烈的引用),它们将被取消分配。这是真的。请参阅下面的Peter Hosey的评论。