
OC
xiangxiaopenyou
Geek
展开
-
利用runtime处理数组越界导致的Crash
前言 前几天查看后台bug统计数据,又发现了一个数组越界导致的崩溃问题,非常让人头疼,因为数组越界问题已经在业务层做了无数的判空处理,每次出现问题之后都会进行反复测试,不断优化,自以为这个版本是不可能出现问题的,然而...... 思路 实现 总结 ...原创 2020-11-20 14:49:33 · 507 阅读 · 0 评论 -
一个打开/关闭书籍动画(转场动画)
最近一直在写小说阅读器相关内容,看了当前热门的几款小说APP,发现打开/关闭书籍的时候都加了一个自定义转场动画,但是我们当前的项目是没有的。作为一个对界面效果有独特追求的开发者来说,绝对不能忍,加班也要加上去! 大概看了一下动画效果,发现难度其实不大,简单归纳为下面几步: 1、设置两个视图,一个为书籍封面截图,另一个为打开书籍内容截图,保存书籍封面视图; 2、打开书籍时:书籍封面沿书脊位置(左边Y轴)逆时针旋转90度并放大到书籍...原创 2020-10-13 11:28:15 · 1014 阅读 · 0 评论 -
iOS 利用归档(解档)保存(获取)用户信息
说起用户信息保存问题,每个开发者应该都有很多不一样的见解。iOS提供了多种本地数据持久化方式,常用的有沙盒机制、本地数据库等。使用最多,也最简单方便的估计就是NSUserDefaults了。NSUserDefaults也是沙盒机制的一种,他的沙盒路径是Library->Preferences,因为大家用的都多,这里就不介绍了。处于安全性考虑,一般我们保存的用户信息并不会包括账号、密码这类敏感数据(这类信息可以保存到钥匙串,或者加密以后再保存),博主这里说的用户信息指的就是类似用户昵称、头...原创 2020-07-24 11:12:03 · 1039 阅读 · 0 评论 -
(转载)Aspects深度解析-iOS面向切面编程
背景简述在日常开发过程中是否有过这样的需求:不修改原来的函数,但是又想在函数的执行前后插入一些代码。这个方式就是面向切面(AOP),在iOS开发中比较知名的框架就是Aspects,而饿了么新出的Stinger框架先不讨论,Aspects的源码精炼巧妙,很值得学习深究,本文主要从源码和应用层面来介绍下源码解析先提出几个问题带着问题去阅读更容易理解Aspects实现的核心原理是什么 哪些方法不能被hook hook的操作是否可以只对某个实例生效,对同一个类的其他实例不生效? blo转载 2020-05-22 11:20:29 · 250 阅读 · 0 评论 -
使用GCD和NSOperation的自我感悟(部分用法和tips)
博主作为一个四年多的老iOS程序开发,用到GCD和NSOperation的场景太多了。该篇文章对于这两种多线程技术做一个小总结,当然有人会说多线程技术也经常用到NSThread,为什么不一起总结。博主开发中使用多线程的时候基本上选择GCD或者NSOperation,用到NSThread实在太少,至于NSThread的原理和使用大家可以去网上查找。网上对于这两种技术的介绍和对比可以找出...原创 2020-04-22 15:04:39 · 195 阅读 · 0 评论 -
Runtime应用场景总结
一、方法交换(Method Swizzling)方法交换作为runtime最常用的场景之一,也被称为OC中的黑魔法。主要用到的方法://获取类方法class_getClassMethod(Class _Nullable cls, SEL _Nonnull name)//获取实例方法class_getInstanceMethod(Class _Nullable cls, SEL _...原创 2019-12-17 15:56:26 · 777 阅读 · 0 评论