首页 > TAG信息列表 > Runloop

RunLoop学习

开篇几道面试题: 讲讲RunLoop,在项目中有用到吗? runloop内部实现逻辑 runloop和线程的关系 timer与runloop的关系 程序中添加每3秒响应一次的NSTimer,当拖动tableview时timer可能无法响应,为什么?怎样可以解决? runloop是怎样响应用户操作的,具体流程是什么样? 说说runloop的几种状态 runl

iOS底层系列之<27>--Runloop<三>Runloop监听observer的方式

1、监听的方式一(C语言函数) - (void)test10 { // 创建observer CFRunLoopObserverRef observer = CFRunLoopObserverCreate(kCFAllocatorDefault, kCFRunLoopBeforeWaiting | kCFRunLoopAfterWaiting, YES, 0, observeRunLoopActivities, NULL); // 添加observer

iOS RunLoop与NSTimer RunLoop与多线程

返回上级目录:iOS面试专题一 文章目录 1.RunLoop与NSTimer1.1 CFRunLoopAddTimer源码分析 2.RunLoop与多线程2.1 怎样实现一个常驻线程2.1.1 实例代码MCObject.m 1.RunLoop与NSTimer 我们的线程,或tableView,正常情况下是运行在default模式下。当我们对tableView进行滑动

iOS-NSTimer 使用

1.NSTimer的创建方法   // 创建一个定时器,但没有添加到运行循环,我们需要在创建定时器后手动的调用 NSRunLoop 对象的 addTimer:forMode: 方法。 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo; // 创建

iOS - RunLoop总结 by:nixs

详细示例代码github仓库总结:NIiOS ##### (二十) iOS RunLoop ``` Runloop RunLoop的应用 - [x] 常驻线程 NSTimer - [x] 1. 定时器的使用 - [x] 2. 滑动时失效 - [x] 3. 不准时 - [x] AutoreleasePool - [x] 事件响应 - [x] 手势识别 - [x] 界面更新 Perf

NiiOS-iOS复习及在学习进度更新

仓库地址 本次更新日期:2020年12月11日 NiiOS (一) 简介 & 规划 i、「目前主要做iOS客户端开发」一直没有好好沉淀记录下自己学习东西;这里把目前主要做的iOS端常用知识点总结下,便于后续开发拿来直接用; ii、后续会陆续贴出完整的复习笔记,有需要联系作者; (二十二) iOS RunL

使用 KVO 可能会拖慢启动速度

使用 KVO 可能会拖慢启动速度 问题  在某一次启动速度优化中,发现最开始的某个 runLoop 中,一个runLoop 耗时很长。发现一个 KVO 变量的初始化消耗了13ms之久,这对启动速度是不可接受了。 源码分析 用 Instrument 看第一次耗时,发现调用了 method_exchange,可能是 KVO的内部实现。

NSTimer、performSelector 函数没有被调用的原因

NSTimer、performSelector 函数没有被调用的原因 performSelector 指定的方法没有被调用 Invokes a method of the receiver on the current thread using the default mode after a delay. 根据苹果的文档,performSelector:withObject:afterDelay: 在指定时间之后,在当前

结合 RunLoop 和 Instrument 定位卡顿

结合 RunLoop 和 Instrument 定位卡顿 iOS 应用,丝般顺滑的理想情况就是 60FPS (对于 iPad Pro 是 240FPS),即在 16ms 之内完成一次渲染。如果找到在每次渲染花费了多久,究竟做了什么事情,那么就可以进行针对性的优化。 RunLoop 的概念 在程序中,我们需要一种机制,可以让当前线程

 2021iOS高频(基础+底层)面试题汇总

目录   关键字copy,weak,assign,strong,nonatomic Weak的底层实现原理 runtime理解 1.Category 的实现原理? 2.isa指针的理解,对象的isa指针指向哪里?isa指针有哪两种类型? 3.Objective-C 如何实现多重继承?   4.runtime 如何实现 weak 属性? 5.讲一下 OC 的消息机制 6、runtime中

精选面试题教你应对高级iOS开发面试官(提供底层进阶规划蓝图)

Runloop和线程的关系1.—一对应,主线程的runloop已经创建,子线程的必须手动创建 2.runloop在第一次获取时创建,在线程结束时销毁 //在runloop中有多个运行模式,但是只能选择一种模式运行,mode 中至少要有一个timer或者是source Mode: 系统默认注册5个Mode:kCFRunLoopDefaultMode:App默认

2021年,大厂常问iOS面试题--Runloop篇

1.Runloop 和线程的关系? 一个线程对应一个 Runloop。 主线程的默认就有了 Runloop。 子线程的 Runloop 以懒加载的形式创建。 Runloop 存储在一个全局的可变字典里,线程是 key ,Runloop 是 value。 2.RunLoop的运行模式 RunLoop的运行模式共有5种,RunLoop只会运行在一个

RunLoop

目录 文章目录 RunLoop简介RunLoop对象RunLoop的构成CFRunLoopModeRef (NSRunloopMode)CFRunLoopSourceRefCFRunLoopTimerRefCFRunLoopObserverRefRunLoop和线程间的关系RunLoop的运行逻辑RunLoop 实际应用1、自动释放池2、事件响应3、手势识别4、界面刷新5、GCD6、定时器7

中高级iOS必备知识点之 RunLoop(一)

转: 中高级iOS必备知识点之 RunLoop(一) RunLoop学习起来是很抽象,也不好理解,所以一定多看几次,多学学才能学好!这也是中高级iOS必须掌握的知识点,面试中经常遇到. 什么是 RunLoop? Run 表示运行,Loop 表示循环。结合在一起就是运行循环的意思。RunLoop就是在程序运行过程中循环做

你了解RunLoop线程保活吗?已封装好,2句代码直接使用

如果你没有了解RunLoop的一些基础,建议你看看这2篇博客,对线程保活本质理解有很大帮助 中高级iOS必备知识点之 RunLoop(一) 源码解读RunLoop,理解以后面试必加分 (温馨提示:这里是一步一步探究,步骤过程比较多,如嫌弃啰嗦,可直接拿后面封装的代码直,2句即可完美使用.) 我们面试

中高级iOS必备知识点之 RunLoop(一)

RunLoop学习起来是很抽象,也不好理解,所以一定多看几次,多学学才能学好!这也是中高级iOS必须掌握的知识点,面试中经常遇到. 什么是 RunLoop? Run 表示运行,Loop 表示循环。结合在一起就是运行循环的意思。RunLoop就是在程序运行过程中循环做一些事情. RunLoop的应用范畴有哪些? 定

OC原理RunLoop(一)

什么是RunLoop runloop是运行循环,在程序运行过程中循环做一些事情 RunLoop应用范畴 定时器、PerformSelector、GCD 事件响应、手势识别、界面刷新、网络请求、自动释放池 获取RunLoop对象 iOS中有2套API来访问和使用RunLoop,分别是NSRunLoop和CFRunLoopRef 区别是NSRunLoo是基于CF

Runloop知识梳理

Runloop知识梳理 源码可在这里查看:https://opensource.apple.com/tarballs/CF/ 1、NSTimer NSTimer解析: NSTimer其实是CFRunloopTimerRef,他们之间是对象桥接(toll-free bridged)的关系。一个timer添加至runloop中,runloop会为其注册好重复时间点的事件,比如12:00,12:10,12:20等。但

038*:OC面试汇总

1:MVC和MVVM的区别?MVVM和MVP的区。如何双重绑定 2:AFNetworking 3:SDWebimage,SDWebImage 下载了图片后为什么要解码? 4:get和post的区别、http有哪些部分、请求头有那些参数,Ping是什么协议,知道MTU吗,TCP头部多长,IP,Http2.0如1.x的区别,TCP 流量控制     比如 Cookie 和 Session 的,

iOS多线程——概念与原理

1. 进程的定义 进程是指在系统中正在运行的一个应用程序,在iOS系统中,每个进程之间都是独立的,每个进程都运行在其专用的且受保护的内存中。 作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:196800191,加群密码:112233,不管你是小白还是大牛欢迎入驻 ,分享B

Runloop源码

源码地址: https://opensource.apple.com/tarballs/CF/ 官方文档介绍: https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Multithreading/RunLoopManagement/RunLoopManagement.html#//apple_ref/doc/uid/10000057i-CH16-SW3 RunLoop图解 从下面这张

RunLoop 探索与源码简析

RunLoop 源码地址 RunLoop 官方文档 Threading Programming Guide 一、Runloop 介绍 1、RunLoop 是什么? 运行循环是与线程相关联的基础设施的一部分。运行循环是一个事件处理循环,用于调度工作和协调接收传入事件。 运行循环的目的是让线程在有工作要做时保持忙碌,而在没有工作要做

iOS:RunLoop的简单应用

RunLoop的简单应用 - (void)runLoopAddDependance{ self.runLoopThreadDidFinishFlag = NO; NSLog(@"Start a New Run Loop Thread"); NSThread *runLoopThread = [[NSThread alloc] initWithTarget:self selector:@selector(handleRunLoopThreadTask)

iOS中的系统目录(Documents、tmp、Library)、RunLoop的一些知识点

学习内容 欢迎关注我的iOS学习总结——每天学一点iOS:https://github.com/practiceqian/one-day-one-iOS-summary 实现轮播图需要注意的地方 需要几张轮播图就设置UIScrollView的contentSize的宽度为自身的几倍 //设置高度为0是为了限制UIScrollView只能在x轴方向滚动,如果设置x

“赢”战2020!阿里、字节:一套高效的iOS面试真题!

  相信最近这段时间,会有很多做iOS开发的小伙伴开始搜索面试题,进行紧急储备了! 这里小编有收集一些相关的问题,其中大部分都是大厂面试或者面试其他人用到的,能命中大部分的面试和日常工作,更希望你可以用它来检验自己! 因为问题量比较大,所以这边只会提供问题! 还是希