运行循环
int i = 0; // 死循环 while (YES) { printf("请输入一个整数,0表示退出:"); scanf("%d", &i); NSLog(@"%d", i); if (i == 0) { break; } }
以上程序,会不停的循环运行,但是,会在输入的时候中断,等待,有了输入之后,再继续循环运行,且一旦输入了复合条件的值,那么通过 if 判断,break退出循环体。
这就是简单的 runloop 模型。在 ios 中,同样存在:
在iOS的应用程序中,应用程序启动之后,系统即会创建一个运行循环监听用户的交互。
抽象的表示就是:
在之前,手写代码给按钮添加触摸抬起的监听事件的时候,以下代码其本质:是在 ios 的 runloop——运行循环中注册一个监听事件!
[button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
当运行循环检测到button的UIControlEventTouchUpInside事件时,会给视图控制器(self)发送一个click消息。也就是点击的方法执行。本质是把用户点击按钮的事件监听,注册到运行循环中,当运行循环检测到用户点击按钮的时候,调用相应的方法。
时间: 2024-11-25 10:31:24