前言: 从64位开始,iOS引入了Tagged Pointer技术,用于优化NSNumber、NSDate、NSString等小对象的存储。 Tagged Pointer主要为了解决两个问题: 内存资源浪费,堆区需要额外的开辟空间 访问效率,每次set/get都需要访问堆区,浪费时间, 而且需要
分类: IOS
apple 为什么要改 objc_msgSend 的类型申明
原文: https://mikeash.com/pyblog/objc_msgsends-new-prototype.html ##总结 : objc_msgSend 类型申明改变的原因: 让错误在编译的时候发生,而不是等到运行时。 为什么有 运行时错误 : ABI 的错配,调用方的ABI (对参数
[Android开发学iOS系列] 语言篇: Swift vs Kotlin
这篇文章是想着帮助Android开发快速学习Swift编程语言用的. (因为这个文章的作者立场就是这样.) 我不想写一个非常长, 非常详尽的文章, 只是想写一个快速的版本能让你快速上手工作.
iOS 数据存储
数据存储策略 在 iOS 应用程序中,从 “数据缓冲在哪里” 这个纬度看,缓冲一般分两种类型。 内存缓冲 磁盘缓冲 内存缓冲是将数据缓冲在内存中,供应用程序直接读取和使用。优点是读取速度快。缺点是由于内存资源有限,应用程序在系统中申请的内存,会随着应用生命周期结束而被释放,会导致内存中的数据
CADisplayLink、NSTimer循环引用解决方案
前言:CADisplayLink、NSTimer 循环引用问题 CADisplayLink、NSTimer会对Target产生强引用,如果target又对他们产生强引用,那么就会引发循环引用。 @interface ViewController () @property (nonatomic,
使用 NSProxy 实现消息转发
一、简介 在 iOS 应用开发中,自定义一个类一般需要继承自 NSObject 类或者 NSObject 子类,但是,NSProxy 类不是继承自 NSObject 类或者 NSObject 子类,而是一个实现了 NSObject 协议的抽象基类。 /* NSProxy.h Copyright
基于 ZEGO SDK 实现 iOS 一对一音视频聊天应用
1 准备环境 在开始集成 ZEGO Express SDK 前,请确保开发环境满足以下要求: Xcode 12.0 或以上版本。 iOS 9.0 或以上版本且支持音视频的 iOS 设备。 iOS 设备已经连接到 Internet。 2 项目准备 2.1 创建项目 进入即构官网,在【ZEGO控制台】创
swift 使用SMAMB2包,重新打包的心酸历程
首先网上很多教程是关于使用swift SMAMB2包的,大部分都是 pod "SMAMB2" 这种方式还是非常简单的,如果仅仅是这样还不至于专门写一篇文章来纪念他。问题就出在我的项目需要用到SMB协议去读取文件,但是并不是直接读取! 通俗一点来讲就是我的用法和 SMAMB2包提供
iOS全埋点解决方案-APP和H5打通
前言 所谓的 APP 和 H5 打通,是指 H5 集成 JavaScript 数据采集 SDK 后,H5 触发的事件不直接同步给服务器,而是先发给 APP 端的数据采集 SDK,经过 APP 端数据采集 SDK 二次加工处理后存入本地缓存再进行同步。 一、App 与 H5 打通原因 1.1 数据
iOS全埋点解决方案-采集崩溃
前言 采集应用程序崩溃信息,主要分为以下两种场景: NSException 异常 Unix 信号异常 一、NSException 异常 NSException 异常是 Objective-C 代码抛出的异常。在 iOS 应用程序中,最常见就是通过 @throw 抛出的异常。比如,常见