自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ioSugar

行有不得反求诸己

  • 博客(10)
  • 收藏
  • 关注

原创 ReactNative 入门体验

环境macOS Mojave Version 10.14.3Xcode 10.1iPhone 5s 10.0.1node v11.10.0npm 6.7.0React Native 0.58react 16.6.3新建ReactNative项目brew install nodebrew install watchman安装React Native命令行工具npm in...

2019-02-22 23:36:14 1528

原创 iOS崩溃日志分析

环境macOS Mojave 10.14.3Xcode10.1iPhone6S 10.0.1获得崩溃日志方式一:Xcode菜单 > Window > Devices and Simulators选择设备并查看设备日志(View Device Logs)方式二:手机设置 > 隐私 > 诊断与用量 > 诊断与用量数据崩溃日志的结构头部(Head...

2019-02-09 09:57:54 4701

原创 Charles HTTP抓包原理

前言: Web代理服务器来自参考链接2对客户端/浏览器来说Web代理服务器是服务器对服务器来说Web代理服务器是客户端环境WireSharkCharlesmacOS 10.13.6解释根据参考链接1中的这段话Web proxy serversWeb proxies forward HTTP requests. The request from the client ...

2019-01-09 17:06:08 1518

原创 Clang学习历程 编译过程-词法分析

前言《编译原理》中提到编译器的第一个步骤是词法分析(Lexical Analysis)或扫描。词法分析器读入组成源程序的字符流,并且将它们组织成为有意义的词素(lexeme)的序列。对于每个词素,词法分析产生如下形式的词法单元(token)作为输出:<token-name,attribute-value>token-name 是一个语法分析步骤要使用的抽象符号att...

2018-12-28 15:41:13 3946

原创 Clang学习历程 概述

介绍ClangClang是LLVM(Low Level Virtual Machine)项目提供的工具链中的编译器的前端部分LLVM项目是模块化和可重用的编译器和工具链技术的集合,LLVM的一大特色就是,有着独立的、完善的、严格约束的中间代码表示。这种中间代码,就是LLVM的字节码,是LLVM抽象的精髓,前端生成这种中间代码,后端自动进行各类优化分析,让用LLVM开发的编译器,都能用上最先见...

2018-12-28 15:39:46 6301

原创 ObjC Runtime 中 Weak 属性的实现 (中)

导语在上一篇中简单分析了 Weak 属性是如何被存储,获取和销毁的,其中的 SideTable 结构体当做黑盒进行处理。本文尝试对 SideTable 的结构进行一些分析。观察struct SideTable { spinlock_t slock; RefcountMap refcnts; weak_table_t weak_table; SideTable() {

2017-06-05 07:19:33 1167

原创 ObjC Runtime 中 Weak 属性的实现 (上)

前言OC 中的 weak 属性是怎么实现的,为什么在对象释放后会自动变成 nil?本文对这个问题进行了一点探讨。环境 mac OS Sierra 10.12.4 objc709参考答案搜索后发现runtime 如何实现 weak 属性给出了一个参考答案。 runtime 对注册的类, 会进行布局,对于 weak 对象会放入一个 hash 表中。 用 weak 指向的对象内存地址作为

2017-05-30 08:20:04 3893 1

原创 Masonary-简化自动布局

Masonary的价值在iOS中,AutoLayout是一种灵活且高效的布局视图的方法,它通过约束简单明确的实现了多屏适配的功能,但是如果不用storyboard而使用,纯代码开发时,使用NSContraints就显得有些繁琐了,而Masonary就是创建自动布局的轻量级框架。如何安装新建一个xcode工程在Podfile中 添加 pod ‘Masonry’ (提示:最好在vim下编辑,关闭中文

2015-06-11 00:18:26 1454

原创 OC的数据传递-Block,代理,通知,KVO

在开始之前,先贴一张图片,表明为什么需要将Block,代理,通知和KVO放在一起。由上图可知,Block,代理,通知和KVO都能实现数据传递的功能,可以根据不同的情景选择合适的方式Block声明// 使用typedef为block变量定义别名// 解释:将一个返回值为double,参数为int的block取一个Rename的别名typedef double (^Rename)(int);//

2015-06-09 07:58:41 1328 1

原创 iOS的多屏适配 - AutoLayout

使用Storyboard与纯代码实现水平宽度三等分的自动布局效果,带实例

2015-06-08 21:34:19 1020

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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