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