runloop

How can I call Method while app is in background in iOS?

自古美人都是妖i 提交于 2019-12-02 11:57:56
问题 I have one class name as myClassCalculate have the following method - (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { NSLog(@"Accelerometer is called"); } I am making object in - (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after app launch myObject = [[myClassCalculate alloc] init]; now when app will go in background, I want this - (void) accelerometer:(UIAccelerometer *

NSTimer

懵懂的女人 提交于 2019-12-02 11:23:55
1. block 示例代码: @property (nonatomic, strong) NSTimer *timer; // 1. 初始化定时器 self.timer = [NSTimer timerWithTimeInterval:1 repeats:YES block:^(NSTimer * _Nonnull timer) { }]; // 2. 将定时器加入RunLoop [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSDefaultRunLoopMode]; // 3. 将定时器移出RunLoop [self.timer invalidate]; 引用关系图: 引用 引用 UIViewController NSTimer NSRunLoop 来源: https://blog.csdn.net/suma110/article/details/102755277

iOS面试题总结

放肆的年华 提交于 2019-12-02 06:14:09
什么是Block? Block是将函数及其执行上下文封装起来的对象。 什么是Block调用? Block调用实质上就是函数调用。 截获变量 对基本数据类型的局部变量截获其值。 对象类型的局部变量连同所有权修饰符一起截获。 局部静态变量以指针形式截获。 全局变量、静态全局变量不截获。 __block修饰符 一般情况下,对被截获变量进行赋值操作需要添加__block修饰符。 需要__block:局部变量:基本数据类型、对象类型 不需要__block:静态局部变量、全局变量、静态局部变量。 赋值 不等于 使用! __block 修饰的变量变成了对象。 __forwarding存在的意义: 不论在任何内存位置,都可以顺利的访问同一个__block变量。 为什么block会产生的循环引用? 当前block对当前对象的某一成员变量截获的话,block会对这一变量有一个强引用,而当前对象又对其当前block有强引用,就产生了一个自循环引用。可以通过__weak对该成员变量进行修饰来消除循环引用。 使用__block来修饰,在MRC下不会循环引用,在ARC下会循环引用,在ARC下要通过断环的方式解除循环引用,但是有个弊端,如果block一直没有调用,这个循环引用是没有办法解除的。 runtime 数据结构 objc_object objc_class isa指针:对象指向类对象,类对象指向元类对象

How can I call Method while app is in background in iOS?

家住魔仙堡 提交于 2019-12-02 04:28:06
I have one class name as myClassCalculate have the following method - (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { NSLog(@"Accelerometer is called"); } I am making object in - (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after app launch myObject = [[myClassCalculate alloc] init]; now when app will go in background, I want this - (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { What can I do, so that this method will get called in

iOS笔记-RunLoop、NSURLConnection(OC)

送分小仙女□ 提交于 2019-12-02 01:49:03
附: 我的github地址 什么是RunLoop 运行循环 一个线程对应一个RunLoop,主线程的RunLoop默认已经启动,子线程的RunLoop得手动启动(调用run方法) RunLoop只能选择一个Mode启动,如果当前Mode中没有任何Source(Sources0、Sources1)、Timer,那么就直接退出RunLoop RunLoop作用 保持程序的持续运行 处理App中的各种事件(比如触摸事件、定时器事件、Selector事件) 节省CPU资源,提高程序性能:该做事时做事,该休息时休息 …… 模拟RunLoop内部实现 其实它内部就是do-while循环,在这个循环内部不断地处理各种任务(比如Source、Timer、Observer) 12345678910111213 void message(int num){ printf("执行第%i个任务", num);}int main(int argc, const char * argv[]) { do { printf("有事做吗? 没事做我休眠了"); int number; scanf("%i", &number); message(number); } while (1); return 0;} 获得RunLoop对象 RunLoop对象 NSRunLoop CFRunLoopRef

SDWebImage之RunLoop

↘锁芯ラ 提交于 2019-12-01 18:53:59
在SDWebImage中的SDWebImageDownloaderOperation的start函数中,调用了CFRunLoopRun(),我们来看一下CFRunLoopRun到底是做什么的,起到了什么作用。 每一个线程有一个runloop,既不可以创建,也不能销毁线程的runloop。Core Foundation根据需求为你创建,通过 CFRunLoopGetMain 可以获得当前线程的runloop。调用CFRunLoopRun可以使当前线程的runloop以默认模式运行起来,直到调用 CFRunLoopStop 来停止runloop。你也可以调用 CFRunLoopRunInMode 来使当前线程的runloop以指定模式运行起来一段时间或者直到runloop被停止。【runloop只能在请求模式至少有一个source或者timer可监控的情况下运行起来。】 一般主线程会自动运行runloop,我们一般情况下不会去管。在其他子线程中,如果需要我们需要去管理。使用runloop后,可以把线程想象成进入了一个循环;如果没有这个循环,子线程完成任务后,这个线程就结束了。所以如果需要一个线程处理各种事件而不让它结束,就需要运行runloop。 在SDWebImageDownloaderOperation中, 1234567891011 - (void)start{ ... self

How a runloop actually works

折月煮酒 提交于 2019-12-01 04:03:49
问题 Earlier this month I asked this question 'What is a runloop?' After reading the answers and did some tries I got it to work, but still I do not understand it completely. If a runloop is just an loop that is associated with an thread and it don't spawn another thread behind the scenes how can any of the other code in my thread(mainthread to keep it simple) execute without getting "blocked"/not run because it somewhere make an infinite loop? That was question number one. Then over to my second.

RunLoop的知识小记

风格不统一 提交于 2019-11-30 01:41:23
RunLoop字面上的意思是,运行循环; 其基本作用:保持程序的持续运行;       处理App中的各种事件(比如:触摸事件、定时器事件、Selector事件)       节省CPU资源,提高程序性能:该做事时做事,该休息时休息 1.main函数中的RunLoop int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 在这个main函数中,UIApplicationMain函数内部就启动了一个RunLoop,所以UIApplicationMain函数一直没有返回,保持了程序的持续运行。这个默认启动的RunLoop是跟主线程相关联的。 NSRunLoop 是基于CFRunLoopRef的一层OC包装,所以了解RunLoop内部结构,需要多研究CFRunLoopRef层面的API。 2.RunLoop与线程的关系 每条线程都有唯一的一个与之对应的RunLoop对象 主线程的RunLoop已经自动创建好了,子线程的RunLoop需要主动创建 RunLoop在第一次获取时创建,在线程结束时销毁获取子线程对应的RunLoop(即,currentRunLoop

Is there any guide for iOS runloop mechanism?

血红的双手。 提交于 2019-11-29 23:12:52
I'm learning socket communication on iPhone, and its guide said something about CFRunloop (it is a guide for CFNetwork , can this be used on iOS?) Where can I learn about runloop on iOS?API reference is not enough. Look at the "Run Loops" chapter of Apple's Threading Programming Guide. In brief: There is one run loop associated with each thread. The run loop has to be run to do anything. Apple's application main function takes care of this for you on the main thread. A run loop is run in a specific mode. The "common mode" is actually a set of modes, and there is an API for adding modes to that

备战九十,iOS面试题菜单,持续更新(题目及答案已上传Github)

∥☆過路亽.° 提交于 2019-11-29 19:09:04
Objective_C语言特性 (戳这里跳转到Github) 分类 扩展 代理(Delegate) 通知(NSNotification) KVO (Key-value observing) KVC(Key-value coding) 属性关键字 runloop (戳这里跳转到Github) RunLoop概念 RunLoop的数据结构 RunLoop的Mode RunLoop的实现机制 RunLoop与NSTimer RunLoop和线程 讲一下 Observer ? autoreleasePool 在何时被释放? 解释一下 事件响应 的过程? 解释一下 手势识别 的过程? 解释一下 GCD 在 Runloop 中的使用? 解释一下 NSTimer。 AFNetworking 中如何运用 Runloop? PerformSelector 的实现原理? 利用 runloop 解释一下页面的渲染的过程? 如何使用 Runloop 实现一个常驻线程?这种线程一般有什么作用? 为什么 NSTimer 有时候不好使? PerformSelector:afterDelay:这个方法在子线程中是否起作用?为什么?怎么解决? 什么是异步绘制? 分类和类拓展的区别? runtime (戳这里跳转到Github) objc在向一个对象发送消息时,发生了什么?