我想在应用程序加载时获取数据并在所有应用程序中使用它。但是如何在我的应用程序中创建一个对象并在任何地方使用它?
提前致谢
答案 0 :(得分:1)
你可以使用Singleton OO pattern或我经常做的是在RootViewController
中创建一个类的实例。
可以使用委托或通过(disadvice)使用RootViewController
实例icw窗口/单个查看的应用程序来访问此UIApplication
。
(YourAppViewController *)[(YourAppDelegate *)[[UIApplication sharedApplication] delegate] viewController];
如果在.pch中定义全局变量,你甚至可以加快速度:
#define ROOTVIEWCONTROLLER ((YourAppViewController *)[(YourAppDelegate *)[[UIApplication sharedApplication] delegate] viewController])
答案 1 :(得分:0)
在AppDelegate中创建一个属性,并将数据加载到该变量中。
用
[[UIApplication sharedApplication] delegate]
您可以从应用程序中全面访问AppDelegate吗?因此,您可以访问您的属性和值;)
希望有帮助吗?
答案 2 :(得分:0)
我看到的最常见方式是使用App Delegate。或许,因为这是最简单的方法。但是,App Delegate经常被滥用。一些开发人员倾向于给App Delegate负责。我曾多次看到开发人员使用App Delegate作为他们的数据模型。这将被视为糟糕的设计。
我这样说就是警告不要让这个失控。因此,这是在应用程序中的任何位置使用初始化对象的一种方法:
当您需要使用对象的getter方法将应用程序中某个对象作为App Delegate引用时,如下所示:
AppDelegate *appDelegate = (AppDelegate *)
[UIApplication sharedApplication].delegate;