首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
基础知识
订阅
海的原滋味
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
深入理解iOS的block
在文章之前,先抛出如下问题。 如果现在不是很熟悉,希望看完这篇文章,能有个新的认识。 先介绍一下什么是闭包。在 wikipedia 上,闭包的定义是 block 实际上就是 Objective-C 语言对于闭包的实现。 如图所示,age是直接值传递,height传递的是*hei…
OC中类簇的实现和应用
类簇是Foundation框架广泛使用的设计模式。类簇在公共抽象父类下对多个私有的具体子类进行分组。以这种方式对类进行分组简化了面向对象框架的公共可见体系结构,而不会降低其功能丰富度。类簇是基于抽象工厂设计模式的。 OC中有哪些类簇呢?NSData、NSArray、NSDict…
Foundation中的类簇和Swizzle
__NSArrayM 是个什么鬼?这就是导致我们上面swizzle method后,swizzle_insertObject:atIndex:不执行的原因。 可以看出,这些打印的类型是苹果隐藏起来的Array的实际类型,因此我们在文章开头的hook掉的是 [NSMutableA…
iOS 类簇
线上的 Bug 不能直接断点至 Crash 的位置,NSPlaceholderString 是什么,是 NSString 吗?没直接使用过,而且直接使用也会报错。于是 Google 调研,这才了解到类簇的概念。 所以创建 NSString 对象时,得到的可能是 NSLitera…
iOS KVC和KVO详解
同时苹果对一些容器类比如NSArray或者NSSet等,KVC有着特殊的实现。 KVC要设值,那么就要对象中对应的key,KVC在内部是按什么样的顺序来寻找key的。当调用setValue:属性值 forKey:@”name“的代码时,底层的执行机制如下: 程序优先调用set:…
iOS底层原理之Block:你对Block了解多少?
写在前面 本文主要从如下几个方面讲解block block的基本使用 block在内存中的布局 block对变量的捕获分析 MRC和ARC的对比 __block的分析 block中内存管理问题
iOS: Block的循环引用
NSGlobalBlock:最初创建一个block的时候,他是存在于5大内存区(栈区,堆区,静态区(全局区),常量区,代码区)的全局区,当我们引入外部变量,block会自动捕获变量,当前这个变量a由栈区捕获到堆区,因为a和block必须在同一个内存空间才可以进行相应的操作,所以…
iOS 属性及修饰符 - 面试回顾
「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战」。 属性 属性 (property) 是 OC 语言的一项特性,用来封装对象中的数据。使用属性,编译器就会自动编写访问这些
iOS 属性修饰符
「这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战」。 @property 有两个的作用:一是自动生成私有属性(一般是下划线+属性名),而是自动生成 getter 和 set