在加载主应用程序视图之前获取一些设备信息

Posted

技术标签:

【中文标题】在加载主应用程序视图之前获取一些设备信息【英文标题】:Getting some device info before the main app view is loaded up 【发布时间】:2011-05-16 19:51:52 【问题描述】:

Objective-c 对我来说很新,所以我很可能会问一个荒谬的简单问题,但是在浏览网络和某些书籍时,我在某种程度上有点难过。很可能是由于我严重缺乏对 obj-c 的了解。所以...任何与此相关的帮助都会非常方便...

我想要做的就是在应用启动时但在加载主应用视图之前获取一些关于应用正在运行的设备的简单信息(使用 [UIDevice currentDevice])。简单的东西,但老实说,我不知道如何做到这一点!然后,我想要在整个应用程序及其视图中可用的任何信息(在变量中?不太确定这是否是 obj-c 的正确术语)。再说一次,我真的不知道怎么做。

我来自网络开发背景,所以这在很大程度上对我来说是全新的。所以...是的,任何提示/指针、帮助等都会非常有用!

提前致谢,抱歉我的 n00b 问题!

【问题讨论】:

【参考方案1】:

这个地方可能在你的 App Delegates -application:didFinishLaunchingWithOptions: 方法中。当您的应用程序完成启动时会调用此方法,并且(通常)负责将您的主视图添加到应用程序窗口。您可以将信息放入应用程序委托的实例变量中。您可以通过调用[[UIApplication sharedApplication] delegate] 从程序中的任何位置获取对您的应用程序委托的引用。示例实现可能如下所示:

// In MyAppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

    //Get your information, potentially put it into an
    //instance variable of the App Delegate

    //Add the main view to the view hierarchy
    [self.window addSubview:viewController.view];
    [self.window makeKeyAndVisible];

    return YES;

【讨论】:

太好了,这正是我想要的。感谢您的精彩回答!【参考方案2】:

您也许可以使用 viewController 方法“viewWillAppear”。它将希望与“viewDidUnload”方法位于同一区域,该方法将位于连接到主视图的任何 *ViewController.m 文件中。

您可能需要在调用 UIApplicationMain 之前在 main() 例程中执行此操作。

【讨论】:

以上是关于在加载主应用程序视图之前获取一些设备信息的主要内容,如果未能解决你的问题,请参考以下文章

在获取 API 调用之前反应加载屏幕

Android国内应用的隐私政策问题,WebView加载Html界面获取设备信息问题的解决方案

在获取API调用之前重新启动加载屏幕

iOS:在填充表格视图之前等待异步方法

如何获取主应用程序窗口标题栏的高度?

CentOS6启动流程