领琾

黄宜波的个人博客

基于OpenCV实现特定时间内人流量统计

统计摄像头某特定时间内的人流量

Coming Soon…

使用Yum Repository在Linux上安装MySQL

安装之前请确保已安装wget, wget是一个从网络上自动下载文件的自由工具。 安装命令: 1 $ yum -y install wget 1.添加MySQL Yum Repository 1 $ wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm 可以看到进度: 然后检查是否已...

Mac版SourceTree免登录方法

之前一直使用的SourceTree版本是2.0.5.2版本,只需要注册license, 升级后打开一直卡在登录页,国内的话一般是无法直接登录的,翻墙除外,可以使用Google账号登录,且该步骤按正常流程无法跳过。 接下来新建一个Finder窗口,找到应用程序->SourceTree,右键显示包内容: 之后再Contents页面点击右上角搜索,记得在该Contents目录下搜...

iOS知识点总结

MLeakFinder源码 SD,AF,YYCache,AsynDisplay,Texsure MDM GCD Flutter MVVM 埋点,MVP Router,JLRouts,原理 FMDB sql查询语句 编译原理 RAC,冷热信号,各类信号 Runtime,Runloop 内存管理 KVO WebSocket,MQTT,TCP/IP,Http Router URL Router...

谈谈iOS自动布局AutoLayout

UIStackView, VFL, Masonry分析对比

简介 AutoLayout 是一种自动布局技术, 是一种来帮助开发者进行页面布局的技术. 由iOS 6开始引入, 相比于之前的autoresizing, 不仅可以设置当前控件与父控件之间的关系, 还可以设置兄弟控件之间的关系. 使用Autolayout需要设置autoresizing属性为NO, 他们两者只能用其中一个. 核心概念: 1 2 1. 参照: 将某个UI控件作为参照标示,...

Objective-C消息传递与消息转发机制

消息传递 在对象上调用方法,在Objective-C中称作“传递消息”。消息有“名称”(name)或“选择子”(selector,也称作方法),可以接收参数,而且还可能有返回值。 对于在编译期就能决定运行时所应调用的函数的调用方式,是“静态绑定”,而在运行期才能确定的函数调用方式是“动态绑定”。 在Objective-C中,如果向某对象传递消息,那么就会使用动态绑定机制来决定应该调用的...

iOS自动打包神器fastlane部署

多target效率神器, 自动钉钉消息提醒

简介 原文: fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. 🚀 It handles all tedious tasks, like generating screenshots, dealing with code signing, ...

iOS多线程:深入理解GCD

iOS与OS X多线程和内存管理总结

什么是GCD? GCD(Grand Central Dispatch)是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统及中实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。由于线程管理是作为系统的一部分来实现的,因此可统一管理,也可以执行任务,这样就比以前的线程更有效率。 示例: 1 2 3 4...

iOS中的几种Hook实现方案

Hook的原理就是改变程序的执行流程,采用面向切面(AOP)编程思想。 Runtime–Method Swizzling 得益于Objective-C这门语言的动态性,我们可以让程序在运行时做出一些改变,进而调用我们自己定义的方法。使用Runtime交换方法的核心就是Method Swizzling。 需要调用的方法为:method_exchangeImplementations,它实...

CocoaPods组件化之OC与Swift混编问题

PCH pod中饭pch尽量不要使用,每次pod install会重置,事实上其他开源三方库也都不怎么用pch。 可以将需要导入的第三方头文件单独放到一个.h文件中,然后在pod库中的导入这个.h文件。 注意,需要将该.h 设置私有,尤其是当pod库中含有OC和Swift混编时,该操作极其重要,私有该.h文件示例: 1 s.private_header_files = 'Mi...