Xcode中给出了AppDelegates方法的特别之处?
我的应用程序中有很多课程。现在我想要的是我有AudioStreamer
类,我必须在大多数其他类中使用该类...而且我想只有一个AudioStreamer
类的实例。这样就很容易处理一个对象。
在AudioStreamer
文件中声明AppDelegate
类并仅在该文件中创建实例是否可行...我可以在所有其他类中访问该变量。???
答案 0 :(得分:3)
我建议使用singleton,以便所有客户只创建和共享一个实例。
我建议Matt Galaghers发布关于单身人士及其可下载的SynthesizeSingleton.h的信息:
http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html
答案 1 :(得分:2)
您可以使用非常方便的GCD(Grand Central Dispatch)功能在这些线路上实现Singleton行为 -
+ (AudioStreamer*) defaultStreamer { static AudioStreamer* defaultStreamer = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ defaultStreamer = [[AudioStreamer alloc] init]; }); return defaultStreamer; }
答案 2 :(得分:1)
您也可以通过这样的app app访问appDelegate中声明为属性的对象。
myFirstAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
myStr=[appDelegate.mainArray objectAtIndex:1];
在上面的例子中,我展示了如何访问我在appDelegate类中声明和保留的数组。通过这种方式,您可以访问您想要的任何对象,这些对象被声明为属性,通过您的应用程序。希望这会有所帮助。