【问题标题】:Second try on how to understand run loops [duplicate]第二次尝试如何理解运行循环[重复]
【发布时间】:2011-02-20 10:38:07
【问题描述】:

可能重复:
How a runloop actually works

这两个问题我之前也问过,但还是没听懂。

Question about Runloops 1
Question about Runloops 2

在我的一本 iPhone 书中,他们提到运行循环是这样的:

”你的应用程序是一个巨人 无限循环称为运行循环。这 运行循环的工作是检查输入 (一触,核心位置更新,数据 通过网络接口, 等)并找到合适的 该事件的处理程序(如 动作或委托方法 对象)。”

好的,那么循环到底在哪里?我知道主应用程序线程不需要运行它,并且每个线程都有一个关联的运行循环对象,但是它的实际循环部分在哪里?是不是围绕主方法的一个不可见的while循环,如果它在循环中的循环不会循环我的所有代码。我知道这是错误的,但它没有完成。

我不了解 runloop 可以运行的不同模式,但可能是因为我不了解 runloop。

提前致谢!

【问题讨论】:

  • 提请注意现有问题的礼貌方式是发布赏金。谢谢。
  • 或者您可以编辑您的问题并添加更多详细信息。这会将它带到堆的顶部。
  • 当然,我忘了你们中的一些人只是想获得尽可能多的徽章、积分和其他任何可以吹嘘的东西。感谢您让我有机会删除问题并将其粘贴到我的另一个问题中。非常感谢。
  • 也许你应该之前想到过,那么,@Andreas。

标签: iphone runloop


【解决方案1】:

看看 iPhone(或任何 Cocoa,但 Cocoa 正确使用 NSApplicationMain 而不是 UIApplicationMain)应用程序的典型“main()”函数:

#import <UIKit/UIKit.h>

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

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

这是整个应用程序,没有什么异常或“环绕”这个 main() 例程。因此,从逻辑上讲,您可以得出结论,运行循环包含在对 UIApplicationMain 的调用中。

【讨论】:

  • 这实际上一直让我着迷,我从来没有真正理解过main-function,它是如此简单,但却如此出色。
猜你喜欢
  • 1970-01-01
  • 2019-02-19
  • 2012-04-01
  • 1970-01-01
  • 2018-10-21
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多