从runtime源码解析消息发送的动态性 写在前面的话本文不是对runtime的使用的简单的阐述,而是我对runtime中消息发送的一些更深层的理解。 不要相信任何博客或者文章,apple 的 opensource 源代码会告诉我们想知道的一切,所以善用源码可能会事半功倍。 一、结构体 vs 类我们知道,OC 是 C 语言的超集,是对 C 和 C++ 的进一步封装,一开始学习 OC 这门语言的时候,我们就被灌输过一句话:对象存储在堆内存, 2018-01-20
适配iPhoneX & iOS11 一、Screen SizeiPhoneX 的屏幕尺寸为 375pt × 812pt @3x,像素为 1125px × 2436px。可以通过判断屏幕的高度来判断设备是否是 iPhoneX,可以在全局宏定义中添加判断设备的宏定义(横竖屏通用): 1#define IS_IPHONE_X (( fabs((double)[[UIScreen mainScreen] bounds].size.h 2018-01-02
ARC内存管理以及循环引用 ARC:”Automatic Reference Counting”,自动引用计数。Swift语言延续了OC的做法,也是利用ARC机制进行内存管理,和OC的ARC一样,当一些类的实例不在需要的时候,ARC会释放它们的内存。但是,在少数情况下,ARC需要知道你的代码之间的关系才能更好的为你管理内存,和OC一样,Swift中的ARC也存在循环引用导致内存泄露的情况。 一、ARC的工作机制每当我 2018-01-02
值类型和引用类型在Swift中的使用 前言 值类型 vs 引用类型1、什么是值类型值类型就是值直接保存在变量中。例如: 12int a = 10;a = 20; 值类型赋新值的时候会直接覆盖旧值。 1234// 1int b = a;// 2b = 30; 按注释: 1.这段代码首先声明了一个int类型的变量b,然后将a中保存的值赋值给b。 2.给b赋新值,不会影响a中保存的值。 2、什么是引用类型引用类型,变量中保存的是地 2018-01-02
Swift集合函数:Reduce、Map、FlatMap、Filter详解 Reduce声明 1func reduce<Result>(_ initialResult: Result, _ nextPartialResult: (Result, Element) throws -> Result) rethrows -> Result Returns the result of combining the elements of the sequ 2018-01-02
深入理解copy关键字 我们在声明 NSString、NSArray 等具有可变子类的属性时,一般都会用 copy 关键字来指定它的特质。 为什么要用 copy copy 关键字的解释是:此特质所表达的所属关系与 strong(为属性设置新值时,先保留新值,并释放旧值,然后再将新值设置上去)类似。不同的是,设置新值时,不保留新值,而是将其“拷贝”。 看上去并没有什么大不了的,拷贝与否好像和设置成功不成功的关系不大!但是 2017-08-30
iOS10 适配问题 前段时间升级了 Xcode8, 整体来说对 OC 的影响不大,但是还是跳一个坑,消耗了不少时间。这里总结下遇到的适配问题。 1、权限问题 Xcode8 访问相机、相册等需要权限的地方崩溃 解决办法: 在使用私有权限时,添加 Info.plist 文件中添加配置: 下面是各种 key,需要哪个添哪个 NSBluetoothPeripheralUsageDescription 2016-12-26
iOS9 请求 https 问题 - 记录 iOS9 开始苹果将 HTTP 全改为 HTTPS 了,所以出现网络请求失败问题,解决办法: 1、改回 HTTP: 在 info.plist 文件中添加一个 Key:NSAppTransportSecurity(字典类型),然后给它添加一个 Key:NSAllowsArbitraryLoads(Boolean 型),属性值设为 YES. 如下图: 2、添加白名单 (这里 2016-10-23
集成支付宝支付、微信支付 支付宝快捷支付: 官方文档中,支付宝说建议我们使用支付时要讲签名过程放在服务器端,这样安全。同时给的 demo 中签名是在本地移动端做的。。。不过支付宝的集成还是较简单的。 为了安全签名当然放后台做了。我实现支付的过程中主要遇到是参数问题,最后提,先大概梳理一下流程。 当然第一步是注册账号,创建应用 (应用类型根据情况来选择),申请开通支付功能(多久忘了,印象中是挺快的)。 导入 SDK 添加 2016-09-18
极光推送 - 适配 iOS10 //************************ iOS10 适配 **************************// //************************ 11/02/2016 **************************// 添加下 iOS10 的适配 主要代码,其他参照官方文档 注意 AppDelegate 中 import <UserNotific 2016-07-18