cosine

余弦の博客

= WA 的一声就哭了 =

文章列表

post cover
笔记

2025-03-25

256 字

最近做的项目需要“分享图片”的功能,截屏不单单指当前屏幕可视区域,而是指整个 scrollView 区域,因为截屏的范围可自定义,所以只需要将 scrollview 的范围设置就可以,以下是相关代码: ///获取截屏图片- (UIImage *)captureScrollView(UIScrol

post cover
笔记

2025-03-25

256 字

有很多的使用场景需要限制用户的输入字数,比如聊天,回帖,发朋友圈之类的。 经研究找到了比较全面稳定的实现方案。 首先监听需要限制字数的 UITextField,下面两种方法都可以 [[NSNotificationCenter defaultCenter] addObserverself

post cover
笔记

2025-03-25

99 字

在一些场景可能我们不希望用户调用默认的方法以避免一些无法控制的事情发生。 可以通过unavailable来禁用那些不想让用户调用的方法。 具体使用方法如下: // 外部调用将产生编译错误- (instancetype)alloc __attribute__((unavailable("alloc

post cover
笔记

2025-03-25

2436 字

看了一段时间objc的源码,准备开个大坑,写一下了解到的东西,这一时半会是完工不了了,一篇一篇慢慢写吧。 先看一下官方对objc的介绍。 Objective-C is the primary programming language you use when writing software for

post cover
笔记

2025-03-25

1192 字

Objective-C Type Encodings 转自:nshipster,觉得再某些场景上有点用,就直接抄过来了。 @encode,@编译器指令 之一,返回一个给定类型编码为一种内部表示的字符串(例如,@encode(int) → i),类似于 ANSI C 的 typeof 操作。苹果的 O

post cover
笔记

2025-03-25

980 字

为什么分类中不能直接添加属性,这个也是一个经典的面试题了。 搜了一些相关文章,再结合源码做了一个小小的总结。 其实通过这个问题,也可以一瞥 OC 中类的实现。 源码 先晒一下OC类和分类的部分源码: typedef struct objc_class *Class;struct objc_cla

post cover
笔记

2025-03-25

493 字

objc优点: Cateogies 非常实用的扩展机制,可以很方便的为一个已有的类添加属性或者方法,而不需要笨拙的去继承他 Posing 可以让一个类的对象动态的以其他类行为去执行,也许可以理解成动态replace所有的method(不确定是否可以这么理解) 动态识别,比较常见的动态语言的特

post cover
笔记

2025-03-25

592 字

运行时总结 什么是runtime? runtime是一套底层的C语言API(包含很多强大实用的C语言数据类型、C语言函数) 实际上,平时我们编写的OC代码,底层都是基于runtime实现的 也就是说,平时我们编写的OC代码,最终都是转成了底层的runtime代码(C语言代码) runtime有什么作

post cover
笔记

2025-03-25

257 字

当对象接收到不能处理的消息时调用的方法,下面三个方法会按顺序调用。 // 但是自己测试当对象接收到不能处理的消息时调用的方法时,会调用这个方法,在这个方法中拿到sel- (NSMethodSignature*)methodSignatureForSelector(SEL)selector {

post cover
笔记

2025-03-25

2547 字

__weak探究 程序中添加了一个 __weak 变量,查看调用堆栈,看到下一个调用的是 objc_initWeak 函数。 所以我们就 objc_initWeak 函数作为入口,探究 weak。 数据结构 首先了解以下的变量,这些变量在这章的数据结构、函数形参中使用: __weak id weak