首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Objective-C
NewBoy
创建于2021-07-08
订阅专栏
日常积累OC基础及进阶
等 22 人订阅
共64篇文章
创建于2021-07-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
iOS中的多线程(关于GCD信号量)
GCD 中的信号量是指 Dispatch Semaphore,是持有计数的信号。类似于过高速路收费站的栏杆。可以通过时,打开栏杆,不可以通过时,关闭栏杆。
iOS中的多线程(关于GCD的其他方法)
有时需要异步执行两组操作,而且第一组操作执行完之后,才能开始执行第二组操作。这样就需要一个相当于栅栏一样的一个方法将两组异步执行的操作组给分割起来,当然这里的操作组里可以包含一个或多个任务
iOS中的多线程(关于GCD 的队列组)
有时候会有这样的需求:分别异步执行2个耗时任务,然后当2个耗时任务都执行完毕后再回到主线程执行任务。这时候可以用到 GCD 的队列组
iOS中的多线程(关于GCD的队列和任务)
虽然使用 GCD 只需两步,但是既然我们有两种队列(串行队列 / 并发队列),两种任务执行方式(同步执行 / 异步执行),那么我们就有了四种不同的组合方式
iOS中的多线程(关于GCD 基本概念)
全称Grand Central Dispatch,它是C语言的API。CGD是苹果公司为多核的并行运算提供的方案,GCD会自动管理线程生命周期。
iOS中的多线程(关于NSThread)
NSThread是苹果官方提供面向对象操作线程的技术,简单方便,可以直接操作线程对象,不过需要自己控制线程的生命周期
iOS中的多线程(关于Pthread)
关于Pthread是一套通用的多线程的API,可以在Unix / Linux / Windows 等系统跨平台使用,使用C语言编写,需要程序员自己管理线程的生命周期,使用难度较大
iOS中的多线程(多线程在开发中的应用)
一个iOS程序运行后,默认会开启的一条线程,称为:主线程或UI线程。主线程作用:显示、刷新界面;处理UI事件,比如点击事件、滚动事件、拖拽事件等等
iOS中的多线程(多线程相关概念)
在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用而且受保护的内存空间内。一个进程要想执行任务,必须得有一个线程,而且每一个进程中至少有一个线程
iOS中的Runtime(方法交换)
在运行时,类维护了一个方法列表,来解决消息的正确处理。方法列表会把方法的名称映射到相关方法的实现上,其中键值是这个方法的名字Selector(SEL),值是指向这个方法实现的函数指针IMP
iOS中的Runtime(消息转发)
在编译期,向类发送了其无法解读的消息并不会报错,因为在运行期间可以继续向类中动态添加方法,所以编译器在编译时无法确定类中到底会不会有某个方法实现。当对象接收到无法解读的消息后,就会启动“消息转发”机制
iOS中的Runtime(消息机制)
在OC中使用的是“动态绑定”,在程序编译时不能决定真正调用哪个函数,只有当程序运行时,编译器才会根据函数名去方法列表里找对应的函数,Runtime 运行时就是执行已经编译好的代码
iOS中的Runtime(关联属性)
准备用一个系统的类,但是系统的类并不能满足当前需求,这时需要额外添加一个属性。这种情况的一般解决办法就是继承。但是,只增加一个属性,就去继承一个类,总是觉得太麻烦类。
iOS中的Runtime(基本概念)
对于 C 语言,函数调用在编译的时候会决定调用哪个函数,编译完成之后直接顺序执行 对于 OC语言, 属于动态函数调用,在编译的时候并不能决定真正调用哪个函数
iOS中的RunLoop(常用场景)
在子线程中,当任务执行完毕之后子线程就会被销毁,如果我们需要开启一个子线程,在程序运行过程中永远都存在,那么我们就会面临一个问题,如何让子线程永远活着,这时就要用到常驻线程。
iOS中的RunLoop(内部逻辑及对外接口)
主要针对 Core Foundation中 的 RunLoop 的5个类 - CFRunLoopRef - CFRunLoopModeRef - CFRunLoopSourceRe等等
iOS中的RunLoop(基本概念)
从字面上理解就是一个运行循环,一般程序就是执行一个线程,是一条直线,有起点和终点。而RunLoop就是一直在线程上面画圆圈,一直在跑圈,在不断跑圈中,一直在检测一些点击事件、定时器等等
iOS中接口与API设计(三)
只有在极其罕见的情况下才会抛出异常, 异常抛出之后, 无需考虑恢复问题, 而且应用程序此时也应该退出
iOS中接口与API设计(二)
全能初始化方法 创建对象的时候通过传入一些参数来完成的初始化的方法,其他的初始化方法都应该调用这个方法来创建对象,所以我们需要在实现init方法
iOS中接口与API设计(一)
用前缀避免命名冲突 以公司、应用程序或二者皆有关系的关联之名为前缀 一般前缀应该是三个字母的(Apple宣传保留了俩个字母的前缀)
下一页