自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 工作中遇到的crash总结

目录 async-signal-safe 异常 C++ 异常 Objective-C 访问非对象内存 objc_msgSend 内部 crash 访问被释放的对象 SIGBUS 信号 物理地址不正确 物理地址未对齐 SIGSEGV 信号 空指针 执行没有执行权限的内存...

2019-06-05 20:25:43

阅读数 36

评论数 0

原创 无用图片扫描、删除脚本(Python)

使用Python开发检查脚本,原理是: 1. 首先扫描所有特定后缀( '.png', '.jpg', 'jpeg' , '.imageset')等格式的图片文件 或 图片文件夹,获取文件名,存入 allImageFiles 数组中; 2. 扫描所有代码文件,逐行分析,若有引用 allImage...

2019-06-04 21:18:09

阅读数 62

评论数 0

原创 MVVM+RAC总结

目录 一、什么是MVVM 二、为什么使用MVVM 三、RAC 3.1 RAC的用法 四、RAC与MVVM架构设计的优点 五、MVVM + RAC 5.1 MVVM使用指南 5.2 RAC坑 一、什么是MVVM MVVM(Model - View/ViewController -...

2019-06-01 11:07:05

阅读数 163

评论数 0

原创 包大小治理总结

目录 一、图片资源 1.1 清理无用图片 1.2清理重复图片 1.3压缩图片大小 二、代码瘦身 2.1 找寻无用代码 RealizeClass 的实现 RealizeClass的调用时机 如何遍历所有的类? Class & MetaClass 小结 这是...

2019-05-29 13:39:07

阅读数 41

评论数 0

原创 WWDC

2017 WWDC 让我印象最深的就是Xcode 9的匠心、吊炸天的Core ML和VR 编译和索引 速度就是一切 Xcode 9的编译系统是用Swift重写的,编译速度有了很大的提升,同时索引系统也使用了新的引擎,超大项目中文件夹滑动FPS能达到60,代码搜索速度可最多提升50倍(Dem...

2019-05-27 23:41:51

阅读数 54

评论数 0

原创 2016WWDC-App Signing

目录 2016WWDC 401 - What's New in Xcode App Signing 存在问题 1.开发者无法专注于开发 2.团队合作 3.provisioning profile操作繁琐 3.provisioning profile通过ID引用 曾经的尝试 1.X...

2019-05-27 21:11:37

阅读数 38

评论数 0

原创 iOS 自建通道原理总结

目录 1、背景 2、设计流程图 1.长连通道的建立与初始化 2.网络长连接通道的稳定性如何保证 (1) NAT超时断开长连通道的规避策略 (2) DHCP 续租断开长连通道的规避策略 (3) 重试 3、pushSDK与pushServer建立连接过程 3.1协议设计 4、通信格...

2019-05-26 13:50:08

阅读数 42

评论数 0

原创 OAuth1.0 和OAuth2.0的区别

一、为什么出现OAuth? OAuth是一个开放的标准,在移动、web平台能提供一种安全地API授权,使第三方应用不需要密码账号通过授权的方式就可以进行登录。 要解决的问题:打破传统的账号密码登录登录方式,不管是对于用户还是应用提供商,都能安全保障账号数据不被泄露。 二、OAuth1.0 (...

2019-05-21 20:25:34

阅读数 143

评论数 0

原创 iOS APNs推送常见问题

此文章主要总结对自己在维护推送SDK过程中的经验总结。但是只针对APNs进行总结,自建通道属于公司隐私,如有不同的意见欢迎补充,大家一起探讨。 一、推送消息没收到 1.1 客户端排查 检查设备通知设置,查看自己的应用是否打开了推送消息权限。 检查设备网络设置,有两部分原因:(1)设备网络异...

2019-05-20 14:04:55

阅读数 121

评论数 0

原创 MVVM架构设计文档

摘要 这篇文档主要讲解MVVM架构的具体设计,分别有层级划分、层级职责和层级之间的通信,层级内的模块划分、模块职责和模块之间的通信,模块内使用的设计模式和设计模式的使用场景。作为程序设计的准则和规范,并为以后的框架改进提供参考。 设计目标 架构设计按优先级需要达成以下目标: 层级、模块之间...

2019-05-12 20:12:26

阅读数 127

评论数 0

原创 GCD基本使用总结

1.GCD的基本使用 1.1 同步执行 + 串行队列 总结:所有任务都是在主线程完成的,证明了同步执行不具备开启新的线程。所有任务都是按序执行。 1.2 同步执行+并发队列 总结:所有任务都是在主线程中执行的,没有开启新的线程,也就是说同步不具备开启新线程的能力。虽然并发队...

2019-05-04 22:26:15

阅读数 46

评论数 0

原创 组件间通信方式

一种组件间通信方式 QHOServiceManager 是我们推出的业务间通信的解决方案,方便客户端不同的业务仓库之间进行交互。解决不同业务库代码需要互相调用,但是不能直接依赖代码的问题。 没有看懂?没关系,简单来说,当你想要用其他业务库的代码逻辑,却不想,或者,不能把其他业务 pod 添加到...

2019-05-03 20:39:54

阅读数 35

评论数 0

原创 开发中需要注意的性能优化技巧

原则 不做事情是最快的 耗时操作(IO等)放后台线程 不是立刻需要的东西使用懒加载 一些具体的技巧 使用Caesium获取方法级耗时数据,并找出优化点 在进入一个耗时的“重”方法之前使用轻量的 flag 判断是否需要去做 使用局部变量减少方法重复调用 声明类型...

2019-05-03 18:46:29

阅读数 18

评论数 0

原创 iOS main之前发生了什么

目录 编译 预处理 词法分析 语法分析 语义分析 中间代码生成 链接 签名 生成签名 验证签名 装载 虚拟内存 创建虚拟内存空间 建立程序与虚拟内存的映射关系 把 CPU 的 PC 设置为进程入口 Mach-O 文件的加载 Mach-O 文件格式 dyld ...

2019-05-01 18:58:11

阅读数 46

评论数 0

原创 UIScrollView的Autolayout问题

UIScrollView本质上是简单的,通过frame指定了视窗的位置大小,通过contentSize指定了内容的大小(可滚动的区域)。 Autolayout本质上也是简单的,通过指定相对和绝对量,控制UI组件的位置和大小。 这两个本质上简单的东西碰撞到一起后,产生了可怕的火花。 首先,co...

2019-04-22 09:40:42

阅读数 24

评论数 0

原创 iOS 当前控制器

+ (UIViewController *)currentViewController { UIViewController *frontUIViewController = nil; UIWindow *defaultWindow = [[UIApplication shared...

2019-03-16 18:40:41

阅读数 79

评论数 0

原创 iOS 集合的深复制与浅复制

概念对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针;深复制是直接拷贝整个对象内存到另一块内存中。再简单些说:浅复制就是指针拷贝;深复制就是内容拷贝。集合的浅复制 (shallow copy)集合的浅复制有非常多种方法。当你进行浅复制时,会向原始的集...

2017-09-21 06:39:29

阅读数 157

评论数 0

原创 二叉树中两个节点的最低公共父节点

问题描述构建一棵二叉树(不一定是二叉查找树),求出该二叉树中某两个结点的最低公共父结点。借用一张图如下: 最低公共父结点的思路递归,首先从树根开始考虑:①结点A 和 结点B 要么都在树根的左子树中;②要么都在树根的右子树中;③要么一个在左子树中,一个在右子树中。这是一个分治算法,对于情况①和②,...

2017-09-20 23:41:28

阅读数 411

评论数 0

原创 iOS中HTTPS证书验证浅析

本文来自于腾讯Bugly公众号(weixinBugly),原文地址:https://mp.weixin.qq.com/s/-fLLTtip509K6pNOTkflPQ 我是带着一系列的问题,找到了这篇文章,很好地解答我的疑惑! 1.怎么抓HTTPS的包? 2.中间人攻击是什么?解决方案? ...

2017-09-18 11:35:57

阅读数 1333

评论数 1

原创 带你看看GCD

简介谈到iOS多线程,一般都会谈到四种方式:pthread、NSThread、GCD和NSOperation。其中,苹果推荐也是我们最经常使用的无疑是GCD。GCD优点GCD是一套低层级的C API,通过 GCD,开发者只需要向队列中添加一段代码块(block或C函数指针),而不需要直接和线程打交...

2017-09-17 23:00:24

阅读数 332

评论数 0

提示
确定要删除当前文章?
取消 删除