调试包 iOS 16.0 beta1 iOS 15.5iOS 15.4iOS 15.2iOS 15.0 Tips: iOS 15.0.1(x) ...
调试包 iOS 16.0 beta1 iOS 15.5iOS 15.4iOS 15.2iOS 15.0 Tips: iOS 15.0.1(x) ...
概念 在开始多线程之前,我们先来了解几个比较容易混淆的概念。 线程与进程 一个进程,可以拥有一个或多个线程。 runloop与线程 https:...
KVO 什么是KVO? KVO的全称是Key-Value Observing,俗称"键值监听",可以用于监听摸个对象属性值得改变。 要监听Per...
Zombie zombie的原理是用生成僵尸对象来替换dealloc的实现,当对象引用计数为0的时候,将需要dealloc的对象转化为僵尸对象。...
头文件#import的顺序 写法模板 #import <系统库> #import <第三方库> #import “其他类” 尽量按照先系统类 第...
在iOS开发中枚举大家用得最多的应该是NS_ENUM。NS_ENUM也没什么好讲的。主要来讲讲位枚举NS_OPTIONS。 下面是他们在Foun...
// 那么在Swift中如何对常用的工具方法进行定义呢? Swift中不支持#define语法,只能依赖Swift自身的特性来实现: 在OC中我...
下划线和self.的区别 1.通过self. 访问,包含了set和get方法。通过下划线是获取自己的实例变量,不包含set和get的方法。 2....
获取前多少个项的数组 一、声明 初始化空数组 初始化默认值的数组 二、数组基本操作 添加元素 插入元素 删除元素 修改元素 三、数组基本方法 遍...
一、第 1 种:直接跳转 demo 1.1、Swift 版本/// 跳转@objc func click1() { let url = UR...