自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Swift Combine 学习(七):实践应用场景举例

在前面的系列文章中,已经介绍了 Combine 框架的各个组成部分和使用方法。现在,是时候将这些理论知识付诸实践了。本文将通过实际的编程案例,展示 Combine 在日常开发中的应用场景

2024-12-31 00:50:09 858

原创 Swift Combine 学习(六):自定义 Publisher 和 Subscriber

在前面的文章中,我们已经学习了 Combine 框架的核心概念和基础组件。本文将探讨如何自定义 Publisher 和 Subscriber,以满足特定的应用需求。

2024-12-31 00:49:18 691

原创 Swift Combine 学习(五):Backpressure和 Scheduler

在前面的文章中,已经介绍了 Combine 的基础概念、订阅机制和操作符的使用。本文将深入探讨 Combine 中的异步流程控制,包括 Backpressure 和 Scheduler。

2024-12-31 00:48:26 911

原创 Swift Combine 学习(四):操作符 Operator

在前几篇文章中,我们已经了解了 Combine 框架的基本概念、发布者和订阅者的工作机制。本文将详细介绍 Combine 中的操作符(Operator),这些操作符是处理和转换数据流的重要工具。

2024-12-31 00:47:13 1112

原创 Swift Combine 学习(三):Subscription和 Subscriber

在前两篇文章中,主要介绍了 Combine 的基本概念和发布者(Publisher)的工作机制。本文将深入探讨 Combine 中的订阅机制和订阅者(Subscriber)

2024-12-31 00:45:43 961

原创 Swift Combine 学习(二):发布者 Publisher

在上一篇文章中,初步简单的介绍了 Combine 框架的基本概念,大概有了一个初印象。本文将开始介绍 Combine 中的发布者(Publisher)

2024-12-31 00:42:57 944

原创 Swift Combine 学习(一):Combine 初印象

本文是 Swift Combine 七篇学习笔记的开篇,介绍了 Combine 框架的背景、基本概念和核心组件。文章从简述函数响应式编程的角度开始。

2024-12-31 00:41:40 956

原创 iOS 打字机效果与光标追随

一个打字机的效果,并且有一个移动光标不断跟随文字的显示。简单写了个 demo 模拟一下后端返回,实现这个小需求。

2024-09-10 18:06:57 998

原创 记 xcode 16.1 beta 中 __mh_execute_header 编译报错

它为程序提供了一个访问其自身 Mach-O 头部的方式。在 Unity 的集成中,这个符号可能被用来帮助 Unity 框架定位和初始化它需要的资源和代码段。朋友升级了 xcode 16.1 beta。在 iOS 项目中接入 unity 时,其中有一步需要设置。尝试写个 demo 发现在 xcode 15、16 beta 上却都能编译通过。然后尝试把 Xcode 项目的 build settings 里的。设置为 NO,编译通过。类似问题的相关讨论。

2024-08-27 23:19:42 2611

原创 下载和合并 Apple WWDC 字幕文件

批量下载和合并 Apple WWDC 视频字幕文件

2024-06-24 17:58:07 910

原创 Typora + Github + PicGo 的 markdown 免费图床配置

之前用的新浪的图床,挂了。考虑了下还是用 github 靠谱点。结果配置后一直在 Typora 中提示 load image failed ,遂简单记录一下。

2024-03-25 18:00:48 631 1

原创 iOS 头文件引用排序、去重和分堆

此脚本用于自动排序和按一定规则分堆 iOS 项目中的头文件引用,并且支持去除重复引用。适用于 Objective-C 项目。使得代码清晰,整洁,头文件引用去除冗余。

2024-03-21 18:30:18 410 1

原创 在 iOS 项目中查找未使用的宏定义

此脚本会搜索指定目录中的所有 `.m`、`.mm` 和 `.h` 文件,忽略注释掉的代码。脚本在搜索过程中显示加载小动画,并将搜索结果输出到一名为 unused_macro.txt 的文件。没有写对于 ``/* */`` 形式注释代码的忽略。

2024-03-21 18:28:56 454 1

原创 汇编角度探索Objctive-C一些常用点的实现

对于 Objective-C 的一些实现,我们可以在 Apple 开源网站上下载 objc4 等源码一探究竟,之前也写了一篇如何 debug objc4 源码的文章。这篇文章是从汇编角度简单的去窥探一下 Objective-C 的一些实现,个人记录下。如 Class Metada、属性、对成员变量的访问、调用类方法、调用实例方法、block 这几个基础常用点。前言Objective-C 源文件(.m) 的编译器是 Clang + LLVM,Swift 源文件的编译器是 swift + LLVM。借助 c

2022-02-25 18:22:05 2818

原创 一个 iOS 视图间轻量的事件传递工具

前言很早前,看到过一个关于基于 iOS 响应者链条和事件处理机制的总结性文章,评论里有说可以通过这个机制进行简单的 UI 间事件处理。当时没太在意,未深入了解。后来自己总结此块内容时,写了这么个小工具。如 subview -> vcview -> vc。通常我们是把 subview 中的事件传递到 vc,在 vc 中处理。基本的通过通知、代理、block 等进行传递。但是往往会遇到多 view 层级,往往我们得一层一层的向上传递。有没有什么简单的办法可以让我们省去写这些传递代码?基础知识

2022-02-22 00:08:33 1532

原创 iOS 底层原理探索之 objc4 源码debug

你是否想调试 objc 源码,能断点跳跳跳跳进去,对 OC 底层一探究竟。于是你找到了各种官方开源源码,但是不能像我们日常 run 起来项目,进行调试。本文就手把手写清楚步骤,助你一臂之力。

2022-02-15 00:57:58 1655

原创 【冲冲冲】LeetCode1894. 找到需要补充粉笔的学生编号

一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ,那么学生 i 需要 补充 粉笔。请你返回.

2021-09-10 16:47:49 153

原创 【冲冲冲】LeetCode68. 文本左右对齐

给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ' ' 填充,使得每行恰好有 maxWidth 个字符。要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。文本的最后一行应为左对齐,且单词之间不插入额外的空格。说明:单词是指由非空格字符组成的字符序列。每个单词的长.

2021-09-10 16:36:06 167

原创 【冲冲冲】贪心来当leetcode CEO

假设 力扣(LeetCode)即将开始 IPO 。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给你 n 个项目。对于每个项目 i ,它都有一个纯利润 profits[i] ,和启动该项目需要的最小资本 capital[i] 。最初,你的资本为 w 。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。总而言之,.

2021-09-08 11:14:11 226

原创 Leetcode每日打卡之最小k个数(快排or大顶堆)

设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。示例:输入: arr = [1,3,5,7,2,4,6,8], k = 4 输出: [1,2,3,4] 提示:0 <= len(arr) <= 100000 0 <= k <= min(100000, len(arr))来源:力扣(LeetCode)前言今日的 leetcode 打卡题为面试题 17.14. 最小K个数,读完题就知道很简单了,选用任意一种排序方法,然后取前 k 个数返回即可。排序算法.

2021-09-03 19:28:58 269

原创 什么,leetcode easy级别?5种解法重拳出击

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。来源:力扣(LeetCode)示例:给定一个链表: 1->2->3->4->5, 和 k = 2.​返回链表 4->5.前言此题之前刷剑指 offer和 leetcode 时都有做过,leetcode 难度 e.

2021-09-02 15:06:48 798

原创 Leetcode165. 比较版本号

题目给你两个版本号 version1 和 version2 ,请你比较它们。版本号由一个或多个修订号组成,各修订号由一个 ‘.’ 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推。例如,2.5.33 和 0.1 都是有效的版本号。比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较 忽略任何前导零后的整数值 。也就是说,修订号 1 和修订号

2021-09-01 10:15:31 161

原创 Leetcode1109. 航班预订统计

前言最近leetcode的每日刷题都是前缀和类的,比较有连贯性。没有上来搞个hard打击人。本题用到了差分、前缀和,好记性不烂笔头,笔记之。欢迎点赞????????这里有 n 个航班,它们分别从 1 到 n 进行编号。有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi 个座位。请你返回一个长度为

2021-08-31 15:44:38 228

原创 Leetcode528按权重随机选择解题思路

前言按权重随机选择在开发中是一个相对于其他leetcode题来说比较实用,且在日常开发中会见到和使用的算法,还是有现实场景应用的。所以今天leetcode每日刷题AC后,觉得还是有必要做个笔记总结下。Leetcode 528.按权重随机选择给定一个正整数数组 w ,其中 w[i] 代表下标 i 的权重(下标从 0 开始),请写一个函数 pickIndex ,它可以随机地获取下标 i,选取下标 i 的概率与 w[i] 成正比。例如,对于 w = [1, 3],挑选下标 0 的概率为 1 / (1 +

2021-08-30 17:59:18 547

原创 出来搞事情了,iOS项目中嵌入Python解释器

前言想必大家都知道 Python 是一个最近几年火到爆炸的语言。大数据、机器学习、爬虫、自动化运维balabala一大堆应用。良好的可读性,对于上手难度也不会门槛太高。之前公司项目中有做导航App,我带搜索小组。功能交互啥玩意的都基本上定好了,但是有一些国外商业化数据太贵也不够全面,数据可新等级也不咋地,没米下锅啊。负责做数据分析的大哥就pa了上亿条 POI 数据,????上天。(当然还是要遵纪守法)今天本文仅是在项目中嵌入Python编译环境,然后调用 Python 中的方法,并解析返回值。另鉴于本

2021-08-23 11:40:19 890

原创 01背包问题及滚动数组优化空间

前言小M公司年会运气爆棚中奖,老板说给你一个容量w的蛇皮袋,去奖池里愉快的捞吧。奖池里的商品都独一份。袋子能装多少,就算中多少。不同奖品体积价格都不同,且每种奖品拿一次喔。小X心想这机会千载难逢,我咋薅才能让老板薅出血。这个场景中如果归纳到算法中来说,都是很典型的背包问题。都可简化为:有N个物品,这些物品有各自的体积W和价值V。现有已定容量的背包,求如何让背包里装入的物品价值总和最大?在解决此问题前,我们简单回顾一下dp的原理以及解决思路动态规划的原理动态规划(Dynamic Programm

2021-08-21 16:58:44 403

原创 iOS 15 UI适配

前言iOS 15在2021 WWDC会后发布,就勇猛的把水果全家桶都升级了最新系统。两个iOS 15 beta版本过后,系统稳定性整体还不错。也随之发现了几个iOS适配上的bug,在此整理记录下来。后续有发现再继续补充。Xcode Version 13.0 betaiOS 15 Developer Beta21. UINavigationBar在iOS 15中,UINavigationBar默认为透明。在滑动时会有模糊效果。如果想要一直就是模糊效果,可以通过改变scrollEdgeAppeara

2021-08-19 19:11:52 1197

原创 Git LFS管理大文件

前言最近需要在iOS或者macOS上调用Python,所以就找到了Python apple support这个github项目。Demo写完需要上传到github。由于libPython.a大于了100Mb,一直上传失败。然后就才学习到有git lfs这个工具。本着有工具用完,再多了解下的想法,就有了本篇笔记。什么是git lfsGit LFS(Large File Storage),用以帮助git管理比较大的文件。git的diff等是基于文件。对于二进制文件来说,git需要存储每次提交的变动。git

2021-08-19 19:07:24 1013

原创 flutter版本管理工具fvm及GUI工具Sidekick

前言当flutter出了个新版本,想尝尝鲜?升级,打开傻眼,各种报错,新版可能会有很多东西要适配支持。退回去?flutter downgrade然后还得删除缓存,然后再flutter doctor一顿猛操作,网速要是差点意思了,速度就差点意思了。诸如此类,反正就是如果想本地多个flutter版本,可以愉快的快速便捷切换。幸运的是fvm这个非官方工具就能搞定以上需求。fvm介绍fvm:flutter version manager的缩写。此工具可让我们在本地下载安装多个版本flutter sdk。

2021-07-04 16:25:56 1830 5

原创 经典算法之编辑距离算法

对Levenshtein距离算法的简介;算法用动态规划推导过程,具体代码实现;以及一些应用场景举例。

2021-06-30 01:18:22 476

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除