Fish Yan

This is My World

相机扫码设置及优化

Swift

相机扫码设置及优化 使用 AVFoundation 进行相机扫码 优点:扫码速度快,复杂二维码或条码识别率高 缺点:当同时设置条码和二维码识别时,条码识别只能在中心区域识别(范围比较小)详见:Technical Note TN2325 session input output 设置 // session.sessionPreset 建议设置为 high 能提高识别速度 if...

OC 条件编译 & Swift 条件编译

Swift

OC 条件编译 & Swift 条件编译 OC条件编译 新增一个Scheme Project => Info 复制Degbu和Release编译模式 修改新增的Scheme的编译模式 Project => Build Settings => App Clang - Preprocessing => Preprocessor - Macros...

Swift 闭包循环引用问题

Swift

Swift 闭包循环引用问题 在开始之前先提出来几个问题 swift 中那种情况会造成循环引用?什么时候需要使用 unowned 或 weak swift 中 unowned 和 weak 有什么区别? 使用 unowned 或 weak 如何避免 closure 中所访问的对象被提前释放? 如果你也对上面问题有疑问,那就...

8. Swift 访问权限

Swift

8. Swift 访问权限 基础篇 注: 下文中所提及的类和类型为Class, Enum和Struct Swift中的访问级别有以下五种: open: 公开权限, 最高的权限, 可以被其他模块访问, 继承及复写。 public: 公有访问权限,类或者类的公有属性或者公有方法可以从文件或者模块的任何地方进行访问。那么什么样才能成为一个模块呢?一...

最近几个iOS版本特性

iOS

最近几个iOS版本特性 最近几个iOS版本主要更新内容 iOS14新功能特性 App Clip Widgets iOS13 新功能特性 Dark Mode, 推荐FluentDarkModeKit presentViewController弹出样式改变为卡片式 新增SceneDelegate iOS12 新功能特性 UIWebView标记废弃...

WWDC20

WWDC

iOS 增加桌面插件 增加抽屉App归类,可隐藏部分桌面 画中画功能 siri UI更新,语音翻译 App Clip,类似微信小程序 MacOS 更换自家ARM架构的CPU 支持iOS App, iPadOS App(应该只有ARM架构CPU的电脑才行)

Android

Android学习

Android 学习 创建工程 MainActivity 默认主Activity 可在清单文件中修改 activity_main.xml 布局文件 AndroidManifest.xml 清单文件 AndroidManifest 清单文件 应用的软件包名称,其通常与代码的命名空间相匹配。 构建项目时,Android 构建工具会使用此信息来确定代码实体的位置。 打包应...

Runtime tips

Runtime tips

Runtime Tips Tip1. OC的消息机制 消息发送 runtime 通过selector查找IMP的过程 id objc_msgSend ( id self, SEL op, ... ); SEL:objc_object的结构体 动态解析 消息转发 objc_msgSend函数 检测这个 se...

内存管理tips

内存管理tips

内存管理Tips Tip1. 内存分区情况 栈区(Stack) 由编译器自动分配释放,存放函数的参数,局部变量的值等。 栈是向低地址扩展的数据结构,是一块连续的内存区域 堆区(Heap) 由程序员管理 是向高地址扩展的数据结构,是不连续的内存区域 堆区的内存是所有程序共享的,具体每个程序分配的内存大小是有...

UI

UI处理的基础理论tips

iOS开发 UI 基础理论tips Tip1:UITableView的优化 1. cell 重用 使用cell重用,而不是每次都重新创建cell。 将cell样式一致或者类似的注册相同的重用标识,减少重用池中cell种类。 cell样式差别较大的cell注册不同重用标识,避免取到重用cell后重新布局及计算frame所造成 的性能损耗。 2. cell 高度 无需...