
NSRunLoop
文章平均质量分 97
Ansel_m
阿里天猫
展开
-
关于NSRunloop的学习和理解
NSRunloop是iOS中比较重要的一个东西,有必要对它进行学习理解之后做一些记录:请尊重作者劳动成果,转载请注明出处!首先来看看苹果官方给出的解释: The NSRunLoop class declares the programmatic interface to objects that manage input sources. An NSRunLoop object转载 2014-11-18 08:48:13 · 842 阅读 · 0 评论 -
黑幕背后的Autorelease
我是前言Autorelease机制是iOS开发者管理对象内存的好伙伴,MRC中,调用[obj autorelease]来延迟内存的释放是一件简单自然的事,ARC下,我们甚至可以完全不知道Autorelease就能管理好内存。而在这背后,objc和编译器都帮我们做了哪些事呢,它们是如何协作来正确管理内存的呢?刨根问底,一起来探究下黑幕背后的Autorelease机制。Autorelease对象什么时...转载 2018-07-12 14:21:16 · 252 阅读 · 0 评论 -
iOS 循环线程的实现
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{ NSLog(@"--------"); [NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(test原创 2015-08-14 11:43:43 · 5266 阅读 · 0 评论 -
微信iOS卡顿监控系统
引子微信 iOS 团队在值班的时候,时不时会收到这样的卡顿反馈:“用户A 刚才碰到从后台切换前台卡了一下,最近偶尔会遇到几次”、“用户B 反馈点对话框卡了五六秒”、“现网有用户反馈切换 tab 很卡”。这些反馈有几个特点,导致跟进困难:不易重现。可能是特定用户的手机上才有问题,由于种种原因这个手机不能拿来调试;也有可能是特定的时机才会出问题,过后转载 2017-09-06 11:53:13 · 561 阅读 · 0 评论 -
简单监测iOS卡顿的
本文的demo代码也会更新到github上。做这个demo思路来源于微信team的:微信iOS卡顿监控系统。主要思路:通过监测Runloop的kCFRunLoopAfterWaiting,用一个子线程去检查,一次循环是否时间太长。其中主要涉及到了runloop的原理。关于整个原理:深入理解RunLoop讲解的比较仔细。以下就是runloop大概的运行方式: /// 1.转载 2017-09-06 11:45:55 · 753 阅读 · 0 评论 -
孙源的Runloop视频整理
视频地址:http://v.youku.com/v_show/id_XODgxODkzODI0.html1、Runloop是什么东西?普通的命令式执行如下所示,程序顺序执行代码,执行完了就结束了:int main(int argc, char *argv[]) { NSLog(@"hello world!"); return 0;}Runloop就是一个循环,跑圈转载 2017-08-22 23:01:52 · 990 阅读 · 0 评论 -
封装同步的UIActionSheet
问题做iOS开发的同学想必都用过UIActionSheet。UIActionSheet可以弹出一个选择列表,让用户选择列表中的某一项操作。使用UIActionSheet非常简单,以下是一个简单的示例代码:12345678910- (void)someButtonClicked { UIActionSheet * sheet转载 2015-08-14 11:36:39 · 4398 阅读 · 0 评论 -
深入理解RunLoop
RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。目录RunLoop 的概念RunLoop 与线程的关系RunLoop 对转载 2015-06-10 10:11:20 · 5927 阅读 · 0 评论 -
Cocoa深入学习:NSOperationQueue、NSRunLoop和线程安全
Cocoa深入学习:NSOperationQueue、NSRunLoop和线程安全目前在 iOS 和 OS X 中有两套先进的同步 API 可供我们使用:NSOperation 和 GCD 。其中 GCD 是基于 C 的底层的 API ,而 NSOperation 则是 GCD 实现的 Objective-C API。 虽然 NSOperation 是基于 GCD 实现的, 但是并不意转载 2014-11-18 09:10:58 · 1687 阅读 · 0 评论 -
Objective-C Autorelease Pool 的实现原理
内存管理一直是学习 Objective-C 的重点和难点之一,尽管现在已经是 ARC 时代了,但是了解 Objective-C 的内存管理机制仍然是十分必要的。其中,弄清楚 autorelease 的原理更是重中之重,只有理解了 autorelease 的原理,我们才算是真正了解了 Objective-C 的内存管理机制。注:本文使用的 runtime 源码是当前的最新版本 objc4-646.t...转载 2018-07-12 16:05:09 · 181 阅读 · 0 评论