首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS
订阅
我爱南京
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
RunLoop的前世今生
日常的开发工作中,我们几乎很少注意RunLoop,因为我们基本上“用不到”RunLoop。包括我在内应该有很多人都不了解这个东西,只是听说过。最近有空查了不少资料终于把RunLoop运行原理搞清楚了。 本文会对RunLoop的原理进行深入探讨,但是不涉及底层的实现。 我们通过R…
iOS底层原理总结 - Category的本质
Category的实现原理,以及Category为什么只能加方法不能加属性。 load、initialize的区别,以及它们在category重写的时候的调用的次序。 首先我们写一段简单的代码,之后的分析都基于这段代码。 我们之前讲到过实例对象的isa指针指向类对象,类对象的i…
Xcode自带的超好用的诊断工具
“我靠,这个问题怎么查,尝试了几十遍了,都不能复现?”,“我去,这个问题让我匪夷所思啊”……经常听到这类的声音,所以今天打算给大家简单介绍几款 Xcode 自带的超好用的诊断工具,来提高大家的工作效率。(本文不会介绍详细的使用方法,请自行谷歌或者百度。) Xcode 已经为我们…
HTTP和HTTPS详解
互联网的关键技术就是TCP/IP协议。两台计算机之间的通信是通过TCP/IP协议在因特网上进行的。实际上这个是两个协议: IP: Internet Protocol 网际协议。 TCP确保数据包以正确的次序到达,并且尝试确认数据包的内容没有改变。TCP在IP地址之上引端口(po…
WWDC 2018:iOS 内存深入研究
对于我们的 App 所依赖的设备而言,内存资源是有限的。降低 App 所使用的内存可以提高性能和体验,相反,过大的内存占用可能会导致 App 被系统强制退出。所以每个 iOS 开发者都应该关注内存问题。这一节新的内容不多,基本上都是一些老的知识点。 在探讨内存之前,我们要知道为…
在iOS项目中自动生成函数调用关系图(CallGraph)
在平时的开发中经常需要阅读学习其他人的代码,当开始阅读一份自己完全不熟悉的代码时,通常会遇到一些麻烦,因为我必须要先找到代码逻辑的入口点并沿着逻辑链路将其梳理一遍,一份代码文件通常会伴随着许多的方法调用,这一个阶段往往是比较痛苦的,因为我必须花上许多时间来将这些方法之间的关系理…
Drafter: 一个在iOS项目中分析代码结构的工具
在分析一个工程中的单个代码文件时,无法得知定义在其他文件中的类或方法,导致生成的语法树节点缺失,对最终的结果造成不小的影响。 在解析时clang会进行预处理,导致最终生成的结果可能包括一些外部系统库的函数,这对于我们来说是无用的信息(当然这个应该是我的使用姿势问题)。 无法支持…
WWDC 2018:理解崩溃以及崩溃日志
人非圣贤,孰能无过。每个人在写代码的时候,或多或少都会犯错,那么如何调试、找出问题所在呢?让我们跟随苹果工程师一起了解一下崩溃是如何产生以及如何解决它们的吧。 1. 基础知识 崩溃是什么?崩溃是当应用想要做某件事的时候,被意外终止。 CPU 无法执行的代码。 被操作系统“强杀”…
关于NSArray的二三事
在iOS开发中,我们在非常非常多的地方用到了数组。而关于数组,有很多需要注意和优化的细节,需要我们潜入到下面,去了解。 以下,是我长时间工作学习中积攒下来的碎片,积攒了足够多了,就应该拿出来亮一亮了。 清晰易懂,我们可以看到,不管创建的事可变还是不可变的数组,在alloc之后得…
iOS RunTime解析
欢迎大家关注我的公众号,我会定期分享一些我在项目中遇到问题的解决办法和一些iOS实用的技巧,现阶段主要是整理出一些基础的知识记录下来 文章也会同步更新到我的博客:http://ppsheep.com RunTime一直是iOS开发中非常重要的而且必须要理解的东西,最近在学习Ru…