1.RunLoop是什么?

1.Run loops是线程相关的的基础框架的一部分。

一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用run loop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。

Run loop的管理并不完全自动的。

你仍然需要设计你的线程代码在合适的时候启动run loop并正确响应输入事件。Cocoa和Core Fundation都提供了run loop objects来帮助配置和管理你线程的run loop。你的应用程序不需要显式的创建这些对象(run loop objects);每个线程,包括程序的主线程都有与之对应的run loop object。

只有辅助线程才需要显式的运行它的run loop。在Carbon和Cocoa程序中,主线程会自动创建并运行它run loop,作为一般应用程序启动过程的一部分。

2.     什么是序列化和反序列化,可以用来做什么?如何在OC中实现复杂对象的存储?

<span style="word-wrap: normal; word-break: normal; line-height: 30px;"><span style="word-wrap: normal; word-break: normal; line-height: 27px;"><span style="font-size: 20px;">答</span>:</span></span><span style="word-wrap: normal; word-break: normal; line-height: 27px;"><span style="word-wrap: normal; word-break: normal; line-height: 20px; font-family: arial;">把对象转换为字节序列的过程称为对象的</span><span style="word-wrap: normal; word-break: normal; line-height: 20px; color: rgb(204, 0, 0); font-family: arial;">序列化</span><span style="word-wrap: normal; word-break: normal; line-height: 20px; font-family: arial;"> <wbr></wbr></span></span>
<span style="word-wrap: normal; word-break: normal; line-height: 27px;"><span style="word-wrap: normal; word-break: normal; line-height: 20px; font-family: arial;">        把字节序列恢复为对象的过程称为对象的</span><span style="word-wrap: normal; word-break: normal; line-height: 20px; color: rgb(204, 0, 0); font-family: arial;">反序列化</span></span>
<span style="word-wrap: normal; word-break: normal;"><span style="word-wrap: normal; word-break: normal; white-space: pre;">       </span><span style="word-wrap: normal; word-break: normal; line-height: 27px;">将对象写到文件或者数据库里,并且可以读取出来</span></span>
<span style="word-wrap: normal; word-break: normal; line-height: 27px;">    遵循NSCoding协议,来实现复杂对象的存储</span>
<span style="word-wrap: normal; word-break: normal; line-height: 27px;">    实现该协议后就可以对其进行打包或者解包,然后转化为NSData</span>

3.      简述应用程序按Home键进入后台时的生命周期,以及从后台回到前台时的生命周期?

http://blog.csdn.net/totogo2010/article/details/8048652

时间: 2024-10-28 21:23:59

1.RunLoop是什么?的相关文章

NSURLConnection和Runloop(面试)

(1)两种为NSURLConnection设置代理方式的区别 //第一种设置方式: //通过该方法设置代理,会自动的发送请求 // [[NSURLConnection alloc]initWithRequest:request delegate:self]; //第二种设置方式: //设置代理,startImmediately为NO的时候,该方法不会自动发送请求 NSURLConnection *connect = [[NSURLConnection alloc]initWithRequest:

【iOS程序启动与运转】- RunLoop个人小结

学习iOS开发一般都是从UI开始的,从只知道从IB拖控件,到知道怎么在方法里写代码,然后会显示什么样的视图,产生什么样的事件,等等.其实程序从启动开始,一直都是按照苹果封装好的代码运行着,暴露的一些属性和方法作为接口,是让我们在给定的方法里写代码实现自定义功能,做出各种各样的应用.这些方法的调用顺序最为关键,熟悉了程序运转和方法调用的顺序,才可以更好地操控程序和代码,尽量避免Xcode不报错又实现不了功能的BUG.从Xcode的线程函数调用栈可以看到一些方法调用顺序. 0 从程序启动开始到vie

Runloop

1.Runloop基础知识 1.1 字面意思 a 运行循环 b 跑圈 1.2 基本作用(作用重大) a 保持程序的持续运行(ios程序为什么能一直活着不会死) b 处理app中的各种事件(比如触摸事件.定时器事件[NSTimer].selector事件[选择器·performSelector···]) c 节省CPU资源,提高程序性能,有事情就做事情,没事情就休息 1.3 重要说明 (1)如果没有Runloop,那么程序一启动就会退出,什么事情都做不了. (2)如果有了Runloop,那么相当于

IOS RunLoop浅析 一

RunLoop犹如其名循环. RunLoop 中有多重模式. 在一个"时刻"只能值执行一种模式. 因此在使用RunLoop时要注意所实现的效果有可能不是你想要的. 在这里用NSTimer展示一下Runloop的简单实现. 在故事板中添加一个TextView(用于测试) 我们吧nstimer加入到NSDefaultRunLoopMode模式中 在上面我们可以很清晰的看到,当我们滚动TextView的时候,nstimer不在执行. // // ViewController.m // CX

iOS 如何启动和停止RunLoop

#import "ViewController.h" @interface ViewController ()<NSURLConnectionDataDelegate> @property (nonatomic, assign) CFRunLoopRef runLoop;// 保持同一个线程 C语言 @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; dispatch_

iOS RunLoop了解和使用

RunLoop 上次讲了runtime,这次是runloop,虽然两者都是run开头的名词术语,但是在OC中,这两个东西压根没啥联系.这篇文章主要讲讲runloop的一些概念和用法.其中包含: 什么runloop runloop是怎么存在的 runloop中包含哪些东西 日常开发中使用到runloop 的场景 一.什么是runloop 一个很容易想到的现象: 当我们将手机解锁进入某个APP之后,如果不操作手机(包括网络请求的行为),手机不会有任何反应,一旦我们进行了操作的时候,手机就会执行响应的

深入理解Runloop,看我一篇就够了

前言 RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,为了让大家更加快速融入,请先一段代码: + (NSThread *)networkRequestThread { static NSThread *_networkRequestThread = nil; static dispatch_once_t oncePredicate; dispatch_once(&oncePredicate, ^{ _networkRequestThread = [[NSThread alloc

iOS开发RunLoop学习:四:RunLoop的应用和RunLoop的面试题

一:RunLoop的应用 #import "ViewController.h" @interface ViewController () /** 注释 */ @property (nonatomic, strong) NSThread *thread; @end @implementation ViewController /** * 1:用NSThread创建线程的时候,不要忘记调用start方法来开启线程,在一条线程中的任务执行的顺序是同步的,串行执行,并且当线程中的任务执行完毕后

IOS - RunLoop消息循环

什么是RunLoop? -RunLoop就是消息循环,每一个线程内部都有一个消息循环. -只有主线程的消息循环默认开启,子线程的消息循环默认不开启. RunLoop的目的 -保证程序不退出 . -负责处理输入事件.  -如果没有事件发生,会让程序进入休眠状态  . 事件类型 Input Sources (输入源) & Timer Sources (定时源) -输入源可以是键盘鼠标,NSPort, NSConnection 等对象,定时源是NSTimer 事件 添加消息到循环中 -创建输入源.(以

Runloop(运行循环)是什么?

运行循环是什么?从介绍到演示 今天整理一下运行循环来帮朋友们了解一下什么是运行循环,也叫消息循环,建议大家称之为运行循环(Runloop). 关于多线程的运行循环(消息循环) 1. 什么是运行循环 (1)Runloop就是运行循环,每个线程内部都有一个运行循环. (2)只有主线程的运行循环默认是开启的,子线程的运行循环. 2. 运行循环的作用 (1)保证程序不退出,iOS的应用程序启动之后,之所以不会退出,就是因为有Runloop(运行循环).运行循环是一个死循环,只有满足一定条件才会结束循环.