移动开发

iOS底层原理笔记 - Runtime结构

Runtime结构 OC是一门动态性比较强的语言,跟C、C++语言有着很大不同 OC的动态性是由Runtime API来支撑的 Runtime API提供的接口基本都是C语言的,源码由C/C++/汇编语言编写 要想学习runtime,首先要了解它底层的一些常用数据结构,比如isa指针 在arm64之前,isa就是一个普通的指针,存储着Class、Meta-Class对象的内存地址 在arm64

iOS 双击tabBar滚动tableView到指定位置

我们做一个类似于微信的功能。双击tabBar(会话列表的tabBar)然后让会话列表滚动到有未读消息的那一行! 首先 是实现 tabBar 双击 ,这个可以在网上找一大堆!通信的话 我用的是通知 NSNotificationCenter 在双击指定的 tabBar 的时候发出通知!在对应的页面接受通知!切记 在退出的时候要 移除通知!!!!! 直接上代码:后面有图片  -(void)scro

iOS ~ 数组删除其中的某一个元素

一、概念 /** 注意点: 1.这个问题分两种方式解答. 2.第一种是在循环遍历的时候就进行删除操作. 3.第二种就是在循环遍历完之后在进行操作. */ 二、实现第一种循环遍历删除操作 1.在使用快速遍历进行删除操作之后要加break,来结束,这样就不会出现问题。 NSMutableArray *arr1 = [[NSMutableArrayalloc]initWithOb

利用Bazel编译MediaPipe framework

编译环境 macOS Monterey 12.6 本地MediaPipe工程目录 (本配置过程建立在MediaPipe所依赖环境完全配置完成的情况下,如果不会配置可以参照之前的文章教程) 如果没有,可以从github上面clone一份到本地。 $ git clone 打包framework的工具为Bazel cd到

Android 在手机桌面上创建应用快捷方式图标

一、目标结果:在手机桌面上生成一个和普通应用图标一样的图标,然后用户点击这个图标时,进入对应的应用中(当然你也可以给这个图标点击进入其他的app,主要根据你设置的包名而定) 知道了需求,现在直接上代码,也可以看官网说明:<a href="

MediaPipe之iOS开发

MediaPipe是谷歌开源的机器学习框架,用于处理视频、音频等时间序列数据。 MediaPipe Solutions提供了16个Solutions: 人脸检测、Face Mesh(面部网格)、虹膜、手势、姿态、人体、人物分割、头发分割、目标检测、Box Tracking、Instant Motion Tracking、3D目标检测、特征匹配等。 face_mesh_ar_effects

iOS - 事件传递链与响应链

一、事件链 用户点击屏幕时,首先 UIApplication 对象先收到该点击事件,再依次传递给它上面的所有子 view,直到传递到最上层。即由系统向最上层 view 传递,Application -> window -> root view -> sub view -> ... -> first view 即传递链。 反之,由最基础的 view 向系统传递,firs

掌握这17张图,没人比你更懂RecyclerView的预加载

回顾上一篇文章,我们为了减少描述问题的维度,于演示之前附加了许多限制条件,比如禁用了RecyclerView的预拉取机制。 实际上,预拉取(prefetch)机制作为RecyclerView的重要特性之一,常常与缓存复用机制一起配合使用、共同协作,极大地提升了RecyclerView整体滑动的流畅度。 并且,这种特性在ViewPager2中同样得以保留,对ViewPager2滑动效果的呈现也起着关

Android应用程序资源的编译和打包过程分析

我们知道,在一个APK文件中,除了有代码文件之外,还有很多资源文件。这些资源文件是通过Android资源打包工具aapt(Android Asset Package Tool)打包到APK文件里面的。在打包之前,大部分文本格式的XML资源文件还会被编译成二进制格式的XML资源文件。在本文中,我们就详细分析XML资源文件的编译和打包过程,为后面深入了解Android系统的资源管理框架打下坚实的基础。

iOS开发 Info.plist 相关知识

在iOS开发中,Info.plist是用于存储应用程序相关信息的XML文件,其中包含许多属性来配置应用程序。以下是Info.plist中常用的属性以及它们的详细说明: Bundle identifier(Bundle标识符): 应用程序的唯一标识符,通常由两部分组成:“com.organization.appname”。 Bundle name(Bundle名称): 应用程序在设备中显示的名称。