首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
后端
前端
Android
iOS
人工智能
开发工具
代码人生
阅读
iOS基于LSB图片水印方案
该方案在Xcode构建过程中对App Bundle内的PNG图片资源进行最低有效位(LSB)嵌入,将水印信息隐藏于像素数据中,不影响视觉效果且可追踪版权。
iOS性能优化(2)-耗电优化、APP启动和安装包瘦身
1. 耗电优化 iOS的APP的耗电的性能也是一部分需要的优化的部分.我们可以使用xcode看出一个App的使用性能情况,使用xcode打开你的工程,然后插上手机,使用真机running项目(必须是真
iOS内存管理(3)-MRC、Copy
1. MRC ObjC中的内存管理机制跟C语言中指针的内容是同样重要的,要开发一个程序并不难,但是优秀的程序则更测重于内存管理,它们往往占用内存更少,运行更加流畅。虽然在新版Xcode引入了ARC,但
iOS内存管理(2)-iOS内存布局和Tagged Pointer
1. iOS内存布局 在我们面试的过程中,也有可能被问到iOS内存的布局是什么样子的?每一部分是怎么用的?下面我们就对这部分进行说明. ①. 栈区 0x7 创建临时变量时由编译器自动分配,在不需要的时
iOS内存管理(1)-CADisplayLink、NSTimer和GCD定时器
iOS中三种定时器CADisplayLink、NSTimer和GCD定时器,我们就详尽的讲解一下三种定时器. 在讲解CADisplayLink、NSTimer的时候我们需要对于runloop有一部分的
iOS 多线程(3)-atomic和读取安全
1.atomic 首先要明确的是, 实际上atomic是安全的, 而且是绝对安全的. atomic实际上就是原子操作, 所谓原子, 就是不可再分割, 已经是最小的操作单位了(所谓操作指的是对内存的读写
iOS 多线程(2)-线程安全(锁)
1. 关于锁的讨论 说到锁,大家可能对于这个问题都比较迷茫,都有什么锁,每个锁都有什么作用,我们在开发中应该在对应的情况下应该使用什么种类的锁?接下来我们大家一起研究一下这些问题,我们先来看下为什么要
iOS RunLoop(2)-应用
1. 解决NSTimer在滑动时停止工作的问题 原因:是runloop只能运行在一种模式下,timer是在默认模式下工作的,不是在UItrackRunloop的模式下工作. 2. 线程保活 我们先封装
iOS RunLoop(1)-底层解析
1. RunLoop定义 通常情况下如果我们创建一个Command Line Tool项目,如下: 程序在执行到Line13之后,马上会执行Line15,然后程序退出,因为此段代码中没有runloop
iOS runtime(4)-runtimeAPI详解和方法替换
对于runtime我们前边介绍了消息机制,我们并没有介绍runtime的API. 1.runtime的API 一. runtime关于类的API ①. 动态创建一个类(参数:父类,类名,额外的内存空间
iOS runtime(3)-super原理和面试题
1. super super关键字iOS开发都应该熟悉,但是对于super的原理大家可能不是很了解,而且在面试的过程中经常会问关于super的问题,下面我们就对super的部分进行详细讲解. 我们来看
iOS runtime(2)-class结构和消息转发机制
1. class结构 一. class结构 其实类对象和元类对象的结构是相同的,元类对象是一种特殊的类对象.由于类对象和元类对象结构相同,但我们为什么感觉类对象只有对象方法列表,元类对象只有类对象列表
iOS rutime(1)-isa详解
1. OC的定义 一. isa指针的详解 要想学习isa指针的详细的解释,首先要理解位运算和共用体. 1. 位运算和共用体 A.位运算 我们来看这一段代码: UIViewAutoresizingFle
iOS Block(4)-block内存管理,block循环引用
1. Block内存管理 OC代码转换成C++代码 2. __block的__forwarding指针 用"__block"修饰auto变量xxx的时候,系统会将这个auto变量xxx转换成一个__B
iOS Block(3)-__block修饰变量
在block函数体里面修改变量在日常开发中常见,我们可以轻松在block体内部修改static变量或全局变量,但是却无法修改auto变量。尝试在block中修改auto变量,编译器错误如下: 来看一个
iOS Block(2)-block访问对象类型的auto变量
前面的block讲解中,block访问的都是基本类型的变量,接下来我们了解一下block访问对象类型的auto变量. 访问对象类型auto变量,转换后的C++代码如下: 对比访问基本数据类型: 相同点
iOS Block(1)-底层原理探索、block的类型和copy
1. block的本质 我们通过一个简单的demo,解析一下block的底层原理. 定义一个简单的block并调用: 将OC代码转换成C++代码 block的调用实际上就是__main_block_i
Category原理解析(2)-关联对象
1.分类为什么不能添加属性(成员变量)? ①.分类是用于给原有类添加方法的,因为分类的结构体指针中,没有成员变量列表(结构请看上一篇文章--Category原理解析(1))。所以原则上讲它只能添加方法
Category原理解析(1)-load方法和initialize方法详解
1. Category的底层结构 通过runtime动态的将分类的方法合并到类对象或元类对象中,程序编译的时:category会生成,category中的信息会存储在struct _category_
iOS的KVO和KVC底层原理
1. KVO 一.KVO原理的使用与证明 我们在开发的过程中经常使用KVO和KVC,但是我们并不了解其底层原理和功能,今天我们来详细了解下底层原理. KVO的机制比较隐蔽,所以我们通过写代码的方式去验
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30