首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
yanShu
掘友等级
iOS 工程师
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
1
文章 1
沸点 0
赞
1
返回
|
搜索文章
最新
热门
iOS 多线程之 NSThread
NSThread 是苹果官方提供的,使用起来比 pthread 更加面向对象,简单易用,可以直接操作线程对象。不过也需要需要程序员自己管理线程的生命周期(主要是创建),在开发的过程中偶尔使用 NSThread。比如经常调用[NSThread currentThread]来显示当…
多线程基础概念
进程是指在系统中正在运行的一个应用程序。 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行。 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程). 也就是说,在同一时间内,1个线…
iOS Touch 事件
一个手指一次触摸屏幕,就对应生成一个 UITouch 对象。多个手指同时触摸,生成多个UITouch对象。 多个手指先后触摸,系统会根据触摸的位置判断是否更新同一个 UITouch 对象。 若两个手指一前一后触摸的位置不同,将会生成两个 UITouch 对象,两者之间没有联系。…
AutoLayout 本质
AutoLayout 本质就是一个线性方程解析引擎——布局引擎。 Auto Layout 布局,不再(像 frame 一样)关注视图尺寸、位置的常数。而是关注视图之间关系,描述视图的约束关系来确立一组线性等式或不等式方程组,然后通过解析方程组来确立控件的 frame。 一个 N…
Objective-C 之 Block 底层实现
1. Block 概要 Block 是带有自动变量(局部变量)的匿名函数。它是C语言的扩充功能(C语言不允许存在这样匿名函数)。是将函数及其上下文封装起来的对象。 自动变量的值截获只能保存执行 Block 语法的瞬间值。保存后就不能修改。注意:修改在此指的是赋值,而对象类型,如…
Objective-C 之 Method Swizzling
Method Swizzling 用于改变一个已经存在的selector实现。我们可以在程序运行时,通过改变selector所在Class(类)的 methodLists(方法列表)的映射从而改变方法的调用。其实质就是交换两个方法的IMP(方法实现)。 Method 将 SEL…
Objective-C 之 RunLoop 底层实现
RunLoop 是线程中的一个do-while循环,一个线程如果没有 RunLoop,只能执行一个任务,执行完成后线程就会退出。有 RunLoop 会保持程序的持续运行,在循环中,通过 Input sources(输入源)和Timer sources(定时源)两种来源等待处理事…
Objective-C 之 Runtime 详解
Runtime又叫运行时,是一套底层的 C 语言 API,使我们可以在程序运行时动态的创建对象、检查对象,修改类和对象的方法。 将源代码转换为可执行的程序,通常要经过三个步骤:编译、链接、运行。C 语言作为一门静态类语言,在编译阶段就已经确定了所有变量的数据类型,同时也确定好了…
Objective-C 中 对象/类/元类的本质
1. Class (类) 1. Class (类)的本质 objc_class 结构体的第一个成员变量是 isa 指针,isa 指针 保存的是objc_class结构体的实例指针,换言之,Class(类)的本质就是一个对象,称之为 类对象。 2. Method (方法) obj…
Objective-C 之 KVO 底层原理
1. KVO 简介 KVO即Key-Value Observing,是一种机制,该机制允许将一个对象的特定属性的更改,通知其他对象。对于应用程序中模型层和控制器层之间的通信特别有用。可以观察到包括简单属性,一对一关系和一对多关系的属性。一对多关系的观察者被告知所做更改的类型,以…
下一页
个人成就
文章被点赞
23
文章被阅读
16,543
掘力值
410
关注了
7
关注者
8
收藏集
2
关注标签
13
加入于
2020-12-04