首页
学习
活动
专区
工具
TVP
发布

iOS小生活

专栏作者
162
文章
357866
阅读量
39
订阅数
Flutter引擎——下载、编译和调试
我们打开一个Flutter工程,找到iOS文件夹,点开Runner.xcworkspace工程,找到products文件夹下面的Runner.app:
拉维
2022-03-28
1.9K0
OC对象原理(二)
上面的代码中,如果我们覆写了该类的allocWithZone方法,那么就会走到第31行的逻辑;不过一般而言我们是不会自己去覆写allocWithZone方法的,所以一般都会走第8~28行的逻辑。
拉维
2021-10-20
6810
OC对象原理(一)
我们要探究一个对象,那么就要找到其属性或者方法等所对应的源码。首先,我来介绍三种探索源码(即定位源码位置)的方式。
拉维
2021-10-08
2700
启动优化(二)——二进制重排
上篇文章我们讲了虚拟内存。应用程序在运行的时候会有一个虚拟内存,虚拟内存是分页管理的,它通过页表映射到物理内存上面。分页管理有一个特点,当加载新的一块功能的时候,对应的某一页数据不在物理内存的时候,系统会缺页中断pageFault,而pageFault是需要时间的,用户在使用过程中,几毫秒实际上用户是感知不到的;但是在应用启动的时候,会有大量代码需要执行,此时会有数量众多的pageFault,这样一累计,用户就可以感知到了。
拉维
2021-04-16
1.6K0
fishhook详解
在正式开启对fishhook的讲解之前,我先对之前的dyld的内容(应用程序的加载——dyld动态链接器的工作流程)做个回顾。
拉维
2021-04-16
1.4K0
LLVM(二)——Clang插件
LLVM的下载 由于国内的网络限制,我们需要借助镜像来下载LLVM的源码: https://mirror.tuna.tsinghua.edu.cn/help/llvm/ 执行如下命令下载LLVM项目
拉维
2021-04-16
1.5K0
LLVM(一)——编译流程
我们程序员编写的源代码是人类语言,我们可以很轻松得理解;但是对于计算机硬件(CPU)而言,这些源代码就好比是天书,它根本无法理解,更无法直接执行。计算机只能够识别某些特定的二进制指令,所以在程序真正运行之前,必须要把源代码转换成计算机可以识别的二进制指令。
拉维
2021-04-16
2.1K0
Swift进阶一:Swift简介
Swift语言引入了协议、协议的扩展、泛型等新特性,因此使用Swift语言可以很好地面向协议编程;Swift语言将函数和闭包提升为语言的一等公民,函数可以作为一个变量、可以作为其他函数的参数、作为其他函数的返回值等来传递,所以我们可以使用Swift来进行函数式编程,另外Swift也提供了很多高阶函数来辅助我们进行函数式编程;Swift也提供了属性的权限限定等面向对象的基础设置,因此在Swift中也可以面向对象来编程。
拉维
2020-07-09
2.7K0
对象原理探究(一)
我们要探究一个对象,那么就要找到其属性或者方法等所对应的源码。首先,我来介绍三种探索源码(即定位源码位置)的方式。
拉维
2019-12-27
4960
[super class]和[self class]
按照我们的常规理解,super对应的应该打印Parent啊,为啥最后打印的是Son呢?
拉维
2019-11-21
6200
id和instancetype的区别
在开发当中,id和instancetype都是我们常见的类型,那么这两者有什么异同点呢?
拉维
2019-11-12
1.5K0
Runtime再理解
Objective-C、Java、Swift等高级语言,其可读性很强,但是并不能直接被机器识别,所以就需要将这些源代码编译成相对应的机器语言(比如汇编语言),最终会生成二进制代码。这就是编译时做的事情。
拉维
2019-10-24
5930
Dart的基础语法与类型变量
在Dart中,我们可以用var或者具体的类型来声明一个变量。当使用var定义变量时,表示类型是由编译器推断决定的,当然你也可以用静态类型去定义变量,更清楚地跟编译器表达你的意愿,这样编辑器和编译器就能使用这些静态类型,向你提供代码补全或者编译警告的提示了。
拉维
2019-08-12
8510
Dart语言概览
前面对Dart语言的基本语法做了简单介绍,本篇文章我们站在一个更高的维度来聊一聊Dart。
拉维
2019-08-12
9290
Dart中final和const的异同点
因此,如果常量值在编译的时候就已经确定,运行时也不会改变,那么使用const和final均可;如果常量值在运行的时候才会确定(比如调用一个方法来给常量赋值),那么就必须使用final,不可以使用const。
拉维
2019-08-12
5120
深入理解JSCore后续
总体来说,JavaScriptCore为原生编程语言Objective-C、Swift提供调用JavaScript程序的动态能力,还能为JavaScript提供原生调用能力以弥补前端能力的不足。正因JavaScriptCore的这种桥梁作用,故而出现了出多使用JavaScriptCore开发APP的框架,比如ReactNative、Weex、小程序、WebView Hybrid等框架。
拉维
2019-08-12
1.6K0
OC代码规范2——在类的头文件中尽量少引入其他头文件
前面我提到过,凡是前面带有#符号的,都是编译预处理指令,也就是在编译阶段就执行的语句。
拉维
2019-08-12
2.6K0
OC代码规范1——多用类型常量,少用#define预处理指令
两年前针对这一点写过一篇文章Effective Objective-C 2.0——多用类型常量,少用#define预处理指令,本文是在这篇文章的基础上进行扩展的。
拉维
2019-08-12
1.4K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档