- 博客(479)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 因为媳妇的一句话,我做了一个AI画图软件
3D卡通:让你的创意跃然于三维空间动画风:为你的想象注入生命力油画:体验大师级的笔触质感水彩:感受清新淡雅的艺术魅力素描:捕捉生活中的细腻瞬间中国画:领略东方艺术的独特韵味扁平插画:创作现代简约的视觉设计摄影风:仿若真实的照片级效果人像写真:打造专属你的完美肖像。
2024-07-29 11:54:38 345
原创 我做了一个在手机灵动岛&锁屏看实时网速/步数/下班倒计时/跑步距离/照片/待办/倒计时/手机使用次数/帧率...的软件
鉴于iPhone灵动岛的特性,无论在使用任何App,灵动岛会一直在屏幕的上方,如何不装饰一下,那它就一直是个像药丸形状小黑条常驻在那里,为了让其物尽其用,我做了一个App:Island Widgets ,在灵动岛和锁屏上显示 骑行距离/步数/心率/消耗热量/跑步距离/步行距离/运动时间/体温/下班倒计时/照片/待办/自定义倒计时/手机使用次数/实时网速/CPU/RAM/屏幕帧率 等等信息。目前有23种功能,而且大部分是免费使用的
2023-12-18 14:32:52 1256
原创 设计模式-行为型
设计模式-行为型行为型设计模式主要用于软件运行时复杂的流程控制。包含:模板方法模式、策略模式、命令模式、职责链模式、状态模式、观察者模式、中介者模
2023-02-24 13:25:04 450
原创 Git-合并两个不同的仓库
Git-合并两个不同的仓库有时候我们需要合并两个不同地址的Git仓库,比如:其中一个仓库A我们在GitHub上部署,另外一个仓库B我们在国内的Coding上部署,两者为同一个工程,如果我们希望将仓库A的所有改动合并到仓库B上。整个操作的思路是伪造伪造其中一个远程仓库作为另一个仓库的一个分支,然后进行分支合并。背景:A仓库地址为:git@github.com:qxuewei/notebook.gitB仓库地址为:git@e.coding.net:qxuewei/notebook/notebook.g
2021-02-10 15:40:49 1723 3
原创 Java基础课-MySQL语法
MySQL - 基础语法SQLStructured Query Language:结构化查询语言定义了了操作所有关系型数据库的规则SQL 通用语法SQL 语句可以单行或多行书写,以分号结尾可使用空格和缩进来增强语句的可读性MySQL 数据库的SQL语句不区分大小写,关键字建议大写注释:单行注释:-- 注释内容 或 # 注释内容 (MySQL独有)多行注释:/* 注释内容 */SQL 分类DDL(Date Definition Language) 数据库定义语言:定义数据.
2020-07-02 06:17:11 3789 1
原创 Java基础课 - 笔记(二)
Java - 基础语法二① 常用 APIObject 类java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。常用 API:public String toString(): 返回该对象的字符串表示public boolean equals(Object obj) : 与其他对象比较...
2020-03-31 22:00:59 586
原创 Java基础课 - 笔记(一)
Java - 基础语法一① 基础语法JVM(Java Virtual Machine): Java 虚拟机,简称 JVM,是运行所有 Java 程序的假想计算机,是 Java 程序的运行环境,是 Java 最具吸引力的特性之一。我们编写的 Java 程序,都运行在 JVM 之上。JRE(Java Runtime Environment):Java 程序的运行环境,包含 JVM 和运行时所需...
2020-03-28 22:10:33 952
原创 内存管理、磁盘和文件拾遗
内存管理、磁盘和文件拾遗Part1. 内存管理一个程序的可执行文件在内存中的结果,从大的角度可以分为两个部分:只读部分和可读写部分。只读部分包括程序代码(.text)和程序中的常量(.rodata)。可读写部分(变量)大致可分为下面几个部分:.data:初始化了的全局变量和静态变量.bss:即 Block Started by Symbol,未初始化的全局变量和静态变量heap:堆...
2020-01-01 23:33:45 946
原创 并发技术、进程、线程和锁拾遗
并发技术、进程、线程和锁拾遗Part1. 多任务计算机发展起初,CPU 资源十分昂贵,如果让 CPU 只能运行一个程序那么当 CPU 空闲下来(例如等待 I/O 时),CPU 资源就会被浪费,为了使 CPU 资源得到更好的利用,先驱编写了一个监控程序,如果发现某个程序暂时无需使用 CPU 时,监控程序就把另外的正在等待 CPU 资源的程序启动起来,以充分利用 CPU资源。这种方法称为 - 多...
2019-12-31 22:30:40 1033
原创 体系结构与操作系统拾遗
体系结构与操作系统拾遗Part1. 体系结构基础1. 冯·诺依曼体系结构计算机处理的数据和指令一律用二进制数表示顺序执行程序计算机运行过程中,把要执行的程序和处理的数据首先存入主存储器(内存),计算机执行程序时,将自动地并按顺序从主存储器中取出指令一条一条地执行,这一概念称作顺序执行程序。计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。2. 数据的机内...
2019-12-28 19:23:01 964 1
原创 网络拾遗
网络拾遗Part.1 - HTTP 协议1. HTTP 特性HTTP 协议构建于 TCP/IP 协议之上,是一个应用层协议,默认端口号是 80。HTTP 是无连接无状态的。2. HTTP 报文HTTP 协议是以 ASCII 码进行传输的,建立在 TCP/IP 协议上的应用层规范。规范把 HTTP 分为三个部分:状态行、请求头、请求主体。HTTP 定义了与服务器交互的不同方法,常用的...
2019-12-25 10:33:46 766 1
原创 《Objective-C高级编程 iOS与OS X多线程和内存管理》读书笔记
iOS高级编程-iOS与OS+X多线程和内存管理第一章:自动引用计数自己生成的对象,自己所持有。非自己生成的对象,自己也能持有不再需要自己持有的对象时释放非自己持有的对象无法释放对象操作Objective-C方法生成并持有对象alloc/new/copy/mutableCopy等持有对象retain释放对象release废弃对象deal...
2019-09-21 14:40:26 520
原创 《图解HTTP》读书笔记
《图解HTTP》读书笔记第一章:了解Web及网路基础TCP/IP协议把互联网想关联的协议集合起来总称为TCP/IP协议TCP/IP 协议族按层次分为:应用层,传输层,网络层,数据链路层应用层决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务,比如:FTP 和 DNS 服务就是其中两类HTTP 协议也处于该层传输层传输层对上层应用层,提供处于网络...
2019-08-27 20:47:10 8900 8
原创 iOS进阶 - 如何制定一套适合自己团队的 iOS 编码规范?
iOS进阶 - 如何制定一套适合自己团队的 iOS 编码规范?统一的编码规范,能有限的避免团队成员由于代码风格不一致而导致的相互认同感缺失的问题。好的代码规范,需要从如下八个方面进行约束:常量、变量、属性、条件语句、循环语句、函数、类、分类常量在常量的使用上,建议尽量使用类型常量,而不是宏定义。比如定义一个字符串常量,可以写成:static NSString * const kStrin...
2019-07-08 12:41:58 673
原创 iOS进阶 - iOS如何监控崩溃
iOS进阶 - iOS如何监控崩溃几种常见的崩溃数组越界;给数组添加 nil;多线程问题: 在子线程更新UI, 不同线程操作同一个数据。主线程无响应:主线程超过系统规定时间无响应就会被 Watchdog 杀掉。野指针:指针指向一个已删除的内存区域会出现野指针崩溃。KVO 问题后台任务超时iOS 后台保活的五种方式1. Background ModeApp 审核时会提高对 A...
2019-06-03 22:44:31 2269 1
原创 iOS进阶 - 包大小:如何从资源和代码层面实现全方位瘦身
iOS进阶 - 包大小:如何从资源和代码层面实现全方位瘦身官方 App ThinningApp Thinning 是由苹果公司推出的一项可以改善 App 下载进程的新技术,主要为了解决用户下载 App 耗费过高流量的问题,同时还可以节省用户 iOS 设备的存储空间。App Thinning 会专门针对不同的设备来选择只适用于当前设备的内容以供下载。比如,iPhone 6 只会下载 @2x 分...
2019-06-03 19:31:50 1592
原创 iOS进阶 - 链接器:符号是怎么绑定到地址上的?
iOS进阶 - 链接器:符号是怎么绑定到地址上的?链接器的作用就是将符号绑定到地址上。iOS 为什么使用编译器iOS 编写的代码是先使用编译器将代码编译成机器码,然后在 CPU 上执行机器码,直接在 CPU 上执行机器码,之所以不用解释器运行代码是因为Apple希望 iPhone 的执行效率更高,运行速度能达到最快。为什么运用解释器运行代码速度不够快呢?因为解释器会在运行时解释执行代码,...
2019-05-31 15:23:09 1675
原创 iOS进阶 - 组件化架构设计
iOS进阶 - 组件化设计探究组件化架构的设计需要解决三个主要问题:模块粒度如何划分如何分层多团队如何协作模块粒度如何划分模块粒度划分需遵循五个原则:单一功能原则:对象功能要单一,不要在一个对象里添加很多功能开闭原则:扩展是开放的,修改是封闭的里式替换原则:子类对象时可以替代基类对象的接口隔离原则:接口的用途要单一,不要在一个接口上根据不同入参实现多个功能依赖反转原则:...
2019-05-29 15:20:05 647
原创 iOS进阶 - AutoLayout 是如何自动布局的,性能如何?
iOS进阶 - AutoLayout 是如何自动布局的,性能如何?AutoLayout 是iOS6引入到系统中的,在 WWDC2018 中苹果介绍 iOS 12 将大幅提高 AutoLayout 的性能。AutoLayout 的生命周期AutoLayout 不只有布局算法 Cassoway,还包含了布局在运行时的生命周期等一整套布局引擎系统,用于统一管理布局的创建、更新和销毁。这一整套...
2019-05-28 19:23:09 2368
原创 iOS进阶 - App启动优化
iOS进阶 - App启动优化App启动三个阶段main() 函数执行前main() 函数执行后首屏渲染完成后main() 函数执行前加载可执行文件(App的 .o 文件的集合)加载动态链接库,进行 rebase 指针调整和 bind 符号绑定Objc 运行时的初始处理,包括 Objc 相关类的注册、category 注册、selector 唯一性检查等初始化,包括了执行 ...
2019-05-17 15:12:33 611
原创 iOS - 最易用的数据库工具类 `XWDatabase` 开源
iOS - 最易用的数据库工具类 XWDatabase 开源XWDatabase 将数据库操作简化到难以想象的程度,你甚至不需要知道数据库的存在,当然更不需要写 SQL 语句,你只需要直接操作模型即可对模型进行增删改查的操作,她会根据模型动态在数据库中创建以当前模型类名为名称的数据库表,当然你也可以自定义表名;她会根据模型的成员变量和成员变量的类型动态进行字段的设计,有多少成员变量,表中自然就会...
2018-12-14 12:30:27 1075
原创 iOS底层原理 - 常驻线程
iOS底层原理 - 常驻线程在 AFN 2.0 时代,会经常看到 AFN 创建一个常驻线程的方式:0️⃣ AFN 2.0 时代的常驻线程+ (NSThread *)networkRequestThread { static NSThread *_networkRequestThread = nil; static dispatch_once_t oncePredicate;...
2018-10-16 20:05:01 1595
原创 iOS底层原理-KVO本质探究
iOS底层原理-KVO本质探究先说结论,KVO 的本质:在对一个已知类的某个属性进行 KVO 监听时,系统会在运行时动态创建一个已知类的子类 NSKVONotifying_某类名,并在子类实现 setter 方法,set方法实现内部会顺序调用willChangeValueForKey 方法、原来的 setter 方法实现、didChangeValueForKey 方法,而 didChangeV...
2018-10-11 17:51:54 727
原创 《Effective Objective-C 2.0》读书/实战笔记 三
《Effective Objective-C 2.0》读书/实战笔记 三《Effective Objective-C 2.0》读书/实战笔记 一《Effective Objective-C 2.0》读书/实战笔记 二第6章:块与大中枢派发第37条:理解“块”这一概念块 是C、C++、Objective-C 中的语法闭包块 可接受参数,也可返回...
2018-09-12 23:50:59 711
原创 《效率 - Mac 高效开发》
效率 - Mac 高效开发1.安装 Mac 包管理工具 HomeBrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"brew install wget # 安装 wget 工具brew cask install wecha...
2018-09-07 19:17:07 1377
原创 《Effective Objective-C 2.0》读书/实战笔记二
《Effective Objective-C 2.0》读书/实战笔记 二第3章:接口与API设计第15条:用前缀避免命名空间冲突选择与你的公司,应用程序或两者皆有关联之名称作为类名的前缀,并在所有代码中均使用这一前缀若自己所开发的程序库中用到了第三方库,则应为其中的名称加上前缀顾名思义就是说在自己开发的类需要加前缀,iOS~~程序员~~开发工程师普遍使用双...
2018-08-05 06:32:03 1140
原创 《Effective Objective-C 2.0》读书:实战笔记一
《Effective Objective-C 2.0》读书/实战笔记 一第1章:熟悉Objective-C���� 第1条:了解 Objective-C 语言的起源Objective-C 为C语言添加了面向对象的特性,是其超级。Objective-C 说那个动态绑定的消息结构,也就是说,在运行时才检查对象类型。接收一条消息之后,究竟应执行何种代码,由运行期环境而非编译器来决定...
2018-07-31 22:22:17 2726
原创 iOS 一行代码集成微信浮窗功能
XWFloatingWindow一行代码集成微信浮窗功能1. 效果2. 使用在需要浮窗展示的地方调用:// self 为需要浮窗展示的控制器[XWFloatingWindowView showWithViewController:self];现在你的控制器就已经集成微信浮窗功能了��其他方法1. 当然你可能需要知道当前控制器是否在浮窗内展示...
2018-07-27 18:04:43 4317
原创 算法-判断一个字符串是否是ip地址?
算法-判断一个字符串是否是ip地址?如何判断一个IP是否是合法的IP,如输入:192.168.1.0,输出:合法;输入192.168.1.1222,输出:非法。首先明确IP的格式:(1~255).(0~255).(0~255).(0~255)下面使用两种不同的方式进行验证:方案一为字符串处理,方案二为正则表达式处理方案一:使用字符串判断- (BOOL)ipIsValid...
2018-07-16 09:53:19 8353 3
原创 iOS - 多线程的锁
iOS 中常见的几种锁介绍-示例常用的各类锁性能比较文中Demo 均实现在 XWInterviewDemos1. iOS中的互斥锁 在编程中,引入对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问对象。1.1 @synchronized (self)- (void)l...
2018-07-15 11:21:37 848
原创 iOS-性能优化深入探究
上图是几种时间复杂度的关系,性能优化一定程度上是为了降低程序执行效率减低时间复杂度。 如下是几种时间复杂度的实例:O(1)return array[index] == value;O(n)for (int i = 0, i < n, i++) { if (array[i] == value) return YES;}O(n...
2018-07-03 17:28:39 3169 1
原创 iOS底层原理 - Block本质探究
iOS底层原理 - Block本质探究本质block 本质是一个OC对象,也存在 isa 指针。或者说Block 是封装了函数调用和函数调用环境的OC对象。1.底层实现编写一段最简单的OC代码顶一个block,代码如:int main(int argc, const char * argv[]) { @autoreleasepool { in...
2018-06-29 11:20:10 1213
原创 数据结构与算法 - 单链表逆转
数据结构与算法 - 单链表逆转单链表逆转输出方案一:head 作为已知首节点,最后节点指向null, 使用三个指针便利链表,逐个节点进行反转实现思路图解: 实现代码:struct ActList { ActList * next;};ActList * reverseList(ActList * head) { if (head ...
2018-06-27 09:25:57 4229
原创 iOS 手势操作和事件传递响应链
iOS 手势操作和事件传递响应链概述iOS中的事件可以分为3大类型:触摸事件、加速计事件、远程控制事件。 在我们点击屏幕的时候,iphone OS获取到了用户进行了“单击”这一行为,操作系统把包含这些点击事件的信息包装成UITouch和UIEvent形式的实例,然后找到当前运行的程序,逐级寻找能够响应这个事件的对象,直到没有响应者响应。这一寻找的过程,被称作事件的响应链。Hi...
2018-06-05 17:59:29 6553 1
原创 Swift-Realm数据库的使用详解
Swift-Realm数据库的使用详解概述Realm 是一个跨平台的移动数据库引擎,其性能要优于 Core Data 和 FMDB - 移动端数据库性能比较, 我们可以在 Android 端 realm-java,iOS端:Realm-Cocoa,同时支持 OC 和 Swift两种语言开发。其使用简单,免费,性能优异,跨平台的特点广受程序员GG喜爱。Realm 中文文档...
2018-05-31 14:47:43 6169 2
原创 iOS开发之 Autolayout 详解
iOS开发之 Autolayout 详解1. 概述Autolayout 是 Apple 自 iOS6 开始引入的旨在解决不同屏幕之间布局适配的技术苹果官方推荐开发者使用 Autolayout 进行UI界面的布局Autolayout 有两个核心概念:1. 参照。 2. 约束使用Autolayout的注意点: 添加约束之前需要保证控件已被添加到父控件中不需要再给View设置...
2018-05-24 16:55:11 3940 1
原创 iOS CALayer 详解
iOS CALayer 详解1. 概述在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView,其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层:@p...
2018-05-18 14:56:39 989
学弟课堂作业,帮他解决下-工作太忙
2015-07-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人