【问题标题】:iOS - global variable to measure launch timeiOS - 测量启动时间的全局变量
【发布时间】:2013-06-17 20:59:08
【问题描述】:

在我的应用程序的主函数的某个地方,我需要将一个全局变量设置为当前的CFAbsoluteTime,以便我可以将它与applicationDidFinishLaunching 中的当前时间进行比较,以便我可以测量启动时间。我的问题是在下面的代码中我应该在哪里插入这个代码,我应该把全局变量放在哪里?

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

【问题讨论】:

  • 全局变量 -> 在“全局”(=文件)范围内。首次调用计时器的位置(应该)很明显。

标签: ios main appdelegate


【解决方案1】:

与其说是一个建议,不如说是一个答案...您是否尝试过在返回的正上方放置一条线?类似于

 int main(int argc, char *argv[])
{
    @autoreleasepool {


        timevariable = [CFAbsoluteTime currentTime];
        //or whatever the function call is

        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

甚至可能只是使用 NSLog,然后自己手动减去

【讨论】:

  • 这只能回答一半的问题。全局变量应该在哪里定义?
  • 对,但是我应该把“时间变量”放在哪里,以便我可以从其他文件(例如 AppDelegate)访问它。
  • 应用程序实际上需要对启动时间做一些事情,所以 NSLog 在这种情况下没有帮助。
  • 好的,所以尝试在int main(int argc, char *argv[]) 正上方执行extern <variabletype> <variablename>
  • 好的,外部 CFAbsoluteTime 启动时间; ...但是在 AppDelegate.m 中,我将如何访问它? AppDelegate 似乎对此一无所知。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多