暂时未有相关云产品技术能力~
暂无个人介绍
iOS事件传递链与响应链
iOS:关于APP架构设计的简单理解
APP性能优化分:卡顿处理、耗电处理、安装包瘦身、APP启动四大方面。
APP内存管理
Runtime系列:常见面试题
Runtime系列:LLVM的中间代码(IR)
Runtime系列:常用API
Runtime系列:super调用函数本质、isMemberOfClass与isKindOfClass的区别、综合分析
OC中的方法调用的本质,都是转换为objc_msgSend函数的调用。 这里所说的消息机制就是objc_msgSend的执行流程。
Runtime系列:Class的结构
1、在资源共享时,一块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源,比如多个线程访问同一个对象、同一个变量、同一个文件。 2、当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题。
iOS中的多线程与GCD队列关系
Runtime系列:isa位域详解【02】
RunLoop是一个运行循环,保证App能够持续运行,处理各种事件,节省CPU资源,没事处理的时候就进入休眠。
本片文章介绍将数据(如:Bool类型的数据)存储到二进制位中,包括实现逻辑、代码示例以及各自的优缺点分析。
使用uniapp开发微信小程序的人脸采集功能/人脸识别功能
OC语法,这里面介绍的有: 1、NSObject对象相关:NSObject的本质、NSObject的内存分配、OC类的底层结构、isa指针和superclass指针。 2、KVO、KVC、分类的实现原理、如何给分类添加属性。 3、block相关:block的本质、block如何捕获变量、block本质对象类型、block与copy的关系、如何在block中修改变量、block的内存管理、以及有何解决block循环应用的问题。
在Objective-C开发过程中,尤其在了解某些功能的底层实现时,常用到Clang编译器的命令。这篇文章是简单了解Clang和Clang的常用指令。
用uniapp实现微信小程序的电子签名效果
在使用block的时候,最需要注意的问题便是循环引用,这节主要讲解,block是如何产生的?碰到循环引用又该怎么解决。
一顿饭的功夫带你了解block是如何内存管理的
block修改变量
一、哪些情况block自动copy到堆上? 二、堆栈上的block对auto变量的引用是什么关系? 2.1、block是在栈上 2.2、block被拷贝到堆上 2.3、block从堆中删除
从block的本质这篇文章中,我们已经知道block的本质是一个OC对象。既然是OC对象。那肯定有对象类型,还是从block的本质这篇文章中搜索impl.ipa字段,发现block指向了一个对象 _NSConcreteStackBlock。那么block还有什么类型呢?怎么实现呢?它们又是分配在哪些内存区呢?让我们带着这些疑问往下看。
一篇就带你读懂关于block的变量捕获(capture)
开发框架:uniapp 本片文章主要实现了微信小程序的实时定位功能的小组件实现。
本篇文章带你实现实时定位功能:包括实时定位监听、定位权限判断、经纬度间距计算、判断当前位置是否在目的地的范围区间。
本篇文章告诉你,如果在类对象和Category对象中添加一个属性时,底层做了什么。关联对象如何给Category对象添加成员变量,关联对象的实现原理。
block应用的目的: 把将来想要执行的代码封装起来,然后在恰当的时刻再执行代码。 block本质: 1、block是封装了函数调用和函数调用环境(如:block内部要使用的参数)的OC对象。 2、block本质上也是一个OC对象,它内部也有一个isa指针(只要内部有一个isa指针,我们就可以认为他是OC对象,因为NSObject作为最基础的OC对象,第一个成员变量就是isa指针,这是OC对象的特征)。
KVC 全拼 key-value-coding,翻译过来即为 键值编码 。可以直接访问对象的属性,或者给对象的属性赋值。黑魔法之一,很多高级的iOS开发技巧都是基于KVC实现的
这篇文章主要分析Category的实现原理,load方法和initialize方法调用方式、调用时机、调用顺序、以及他们的区别,解释 Catgory 与 class Extension 有什么区别。
OC:对象的isa指针和superclass指针
KVO的全称 Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变。本文将带你全面了解KVO实现、原理、底层逻辑,以及相关拓展
这篇行文主要介绍OC的类信息具体存放在哪个位置。在了解这个之前,要先明白 Objective-C中的对象(后称OC对象),主要可以分为哪几种,如下: 1、instance对象(实例对象) 2、class对象(类对象)-https://so.csdn.net/so/search?q=%E7%B1%BB%E5%AF%B9%E8%B1%A1&spm=1001.2101.3001.7020 3、meta-class对象(元类对象)
1、64位系统环境的OC对象最小分配内存为16字节。 2、结构体内存对齐,是指在计算结构体大小的时候,其分配的原则:结构体大小必须是最大成员变量分配内存的倍数。 3、iOS操作系统在分配内存的时候,也有内存对齐的概念,为16的倍数 :在iOS的堆空间中,如果要创建一个OC对象,分配内存时,都是16的倍数。
这篇行文主要讲 NSObject 对象三连问:NSObject本质是什么,占用多少内存,以及怎么去分析。 从下图我们可以看到,我们平时编写的 Objective-C 代码,最终转换到机器语言的过程: https://img-blog.csdnimg.cn/2a6a930a8d3546f896d7527a95c3a576.png 换句话说,Objective-C的面向对象都是基于C\C++的数据结构实现的,或者说其底层实现其实都是C\C++代码。
Vue中ref和$refs的介绍与使用
vue动态绑定class和style样式
uni-app 配置编译环境与动态修改manifest.json参数
10个的常用PyCharm插件
首先了解一下,数据库简单分类: 1、sqlite3(免费) 1.1、是一个嵌入式的关系型数据库; 1.2、主要在移动端使用,属于小型的关系型数据库 2、中型数据库:mysql(甲骨文、免费)、sqlserver(微软) 3、大型的数据库:oracle、DB2
mac:创建Django项目
pip3 安装和卸载Django
了解python的安装路径,有利于处对python安装的管理。比如删除多余的python,可以在这些路径中查询处理。
vue-cli脚手架创建项目遇到的坑
nrm(npm registry manager )是npm的镜像源管理工具,可以方便的更换npm的包源。可解决问题: 1、更换国内镜像包源(如淘宝npm镜像)解决国内npm国外包慢的问题。 2、更换某些内网独立包源,实现安装私有服务器的npm包。
parcel-bundler安装 - 前端构建工具
verdaccio:搭建npm私有服务器--原来这么简单
mac安装mysql有两种方式,一种是官网下载安装包后安装,另一种是使用终端安装。 参考链接: 1、mac安装mysql,并使用navicat连接本地数据库 2、Mac Navicat 出现 2003 - Can’t connect to MySQL server on ‘127.0.0.1’ (61 “Connection refused”)
发布npm包时遇到的一些坑