文/一月筠 -- 转载请注明 --
本站主题中大部分标签移植于店长的hexo-butterfly-tag-plugins-plus
title标签语法配置参数样式预览示例源码This is Tab 1.This is Tab 2.This is Tab 3.This is Tab 4.
段落文本 p标签语法配置参数样式预览示例源码1{% p 样式参数(参数以空格划分), 文本内容 %}
字体: logo, code
颜色: red,yellow,green,cyan,blue,gray
大小: small, h4, h3, h2, h1, large, huge, ultra
对齐方向: left, center, right
彩色文字在一段话中方便插入各种颜色的标签,包括:红色、黄色、绿色、青色、蓝色、灰色。
超大号文字文档「开始」页面中的标题部分就是超大号文字。Volantis
A Wonderful Theme for Hexo
123456- 彩色文字 在一段话中方便插入各种颜色的标签,包括:{% p red, 红色 % ...
文/一月筠 -- 转载请注明 --
目录…
随着App功能不断增加,工程代码量也随之快速增加,依靠人工CodeReview来保证项目的质量,越来越不现实,这时就有必要借助于自动化的代码审查工具,进行程序静态代码分析;提升自动化水平,提高团队研发效率。
程序静态代码分析(Program Static Analysis)是指在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。—— 来自百度百科。
由于我们项目中Swift代码占比较高,并且持续使用Swift替换旧的Objc代码,所以技术选型时,仅考虑Swift语言,选用业界主流的静态代码分析工具SwiftLint。
本篇文章将介绍SwiftLint的工作原理,配置文件的参数含义,同时还介绍了SwiftLint内置规则的分类、如何读懂规则说明、如何禁用规则;另外从工程实践角度出发,给出了一些切实可行的建议,并详解了如何添加自定义规则;最后在大项目改进耗时方面给出了解决方案。
SwiftLint简介SwiftLint ...
本文为转载文章,仅作为备份使用,原文地址:Swift 正则速查手册-OneV’s Den
文章主要介绍了Swift语言中正则表达式的使用方法,包括基本语法、常用功能以及一些高级技巧
Swift 5.7 中引入了正则表达式的语法支持,整理一下相关的一些话题、方法和示例,以备今后自己能够速查。
总览Swift 正则由标准库中的 Regex 类型驱动,需要 iOS 16.0 或 macOS 13.0,早期的 deploy 版本无法使用。
构建一个正则表达式的方式,分为传统的正则字面量构建,以及通过 Regex Builder DSL 的更加易读的方式。后者可以内嵌使用前者,以及其他一些已有的 parser,在可读性和功能上要强力很多。实践中,推荐结合使用字面量和 Builder API 在简洁和易读之间获取平衡。
常见字面量和其他各语言正则表达式的字面量没有显著不同。
直接将字面量包裹在 /.../ 中使用,Swift 将把类似的声明转换为 Regex 类型的实例:
1let bitcoinAddress_v1 = /([13][a-km-zA-HJ-NP-Z0-9]{26,3 ...
文/一月筠 -- 转载请注明 --
目录…
Swift Package Manager(下文简称 SwiftPM )是苹果官方提供的一个用于管理源代码分发的工具,它与Swift构建系统集成在一起,可以自动执行依赖项的下载,编译和链接过程。该工具可以帮助我们编译和链接 Swift packages(包),管理依赖关系、版本控制,以及支持灵活分发和协作(公开、私有、团队共享)等。支持Swift、Objective-C、Objective-C ++、C或C ++。 SwiftPM包管理器支持 macOS 和 Linux,与CocoaPods和Carthage功能类似,不过比这两个更简洁,代码的侵入性更小,也不需要额外安装工具。
本文将详细介绍团队在引入SwiftPM进行工程实践中,探索和累积的相关知识和实践经验,我们将从结构设计、资源处理、链接方式的选择、编译与链接参数设置、异常处理,这五个方面展开详细介绍,每个小部分结尾都提供了最佳实践的总结;希望能够帮助其他想要尝试SwiftPM的开发者顺利过渡;
本文面向了解SwiftPM基本知识,但是没有深度使用的开发者;如果你还不了解 ...
文/一月筠 -- 转载请注明 --
本文将讨论Swift协议Protocol中特殊的关联类型Associated Types
在Swift语言当中,泛型(Generic)和协议(Protocol)都是非常重要的语言特性。使用泛型让你能根据自定义的需求,编写出适用于任意类型的、灵活可复用的函数及类型。你可以避免编写重复的代码,而是用一种清晰抽象的方式来表达代码的意图;使用协议能够让你设计一个蓝图,遵循协议的具体类型,帮助你实现某一特定的任务或者功能的方法、属性,特别是协议可以作为类型使用,使其具有了动态派发的能力;本文将讨论Swift协议(Protocol)中特殊的关联类型(Associated Types),它与泛型(Generic)有相似性和又有区别。为了简化文字描述,后续将带有关联类型的协议(Protocol With Associated Types),简称为关联协议;而把普通的不包含任何关联类型的协议(Plain Protocol)简称为普通协议。
[toc]
问题我们将首先讨论一个业务开发中的具体问题,定制UITabbar和UITabBarController。 ...
本文为转载文章,仅作为备份使用,原文地址:Swift 并发初步-OneV’s Den
文章是关于Swift并发编程的介绍和教程,重点在于Swift 5.5中的新特性,如异步函数、结构化并发和actor模型。异步函数简化了编写和处理异步代码的方式;结构化并发使得任务管理和维护变得简单、清晰;而actor模型为数据安全提供了全新思路。文章详细讨论了同步与异步、串行与并行等概念,并通过实例展示如何使用新工具改善并发程序设计,提高性能和数据安全。
本文是我的新书《Swift 异步和并发》中第一章内容,主要从概览的方向上介绍了 Swift 5.5 中引入的 Swift 并发特性的使用方法。如果你对学习 Swift 并发有兴趣,也许可以作为参考读物。
你可以在这里找到本文中的参考代码。在本文写作的 Xcode 13 beta 2 环境下,你需要额外安装最新的 Swift 5.5 toolchain 来运行这些代码。
虽然可能你已经跃跃欲试,想要创建第一个 Swift 的并发程序,但是“名不正则言不顺”。在实际进入代码之前,作为全书开头,我还是想先对几个重要的相关概念进行说明。这样在今后 ...
文/一月筠 -- 转载请注明 --
在这篇文章中,我们将深入探讨XCFramework的核心特点、集成方法、层级结构、创建过程以及最佳实践。无论您是经验丰富的开发者,还是刚刚踏入苹果开发世界的新手,这篇文章都将为您提供宝贵的指导和洞见。让我们一起揭开XCFramework的神秘面纱,探索它如何改变我们的开发方式,以及如何利用这一强大的工具来构建更加健壮和高效的应用程序。
简介XCFramework是苹果推出的新的Framework格式,它实际上是另一种类型的Bundle,与原有的Framework很相似,但是可以包含多种体系机构和平台,这意味着你可以为苹果旗下所有操作系统(iOS,macOS,iPadOS等),不同体系结构(arm64,armv7 ,i386)包含模拟器,甚至UIKit和AppKit App 提供统一的分发方式。它在Xcode 11及更高版本中引入,旨在解决多平台、多架构环境下库文件分发和管理的挑战。在传统的.framework文件中,所有架构的文件都被打包在一起,开发者在使用时需要通过脚本或其他工具来剥离不需要的架构体系。而XCFramework则允许开 ...
文/一月筠 -- 转载请注明 --
目录…
本文主要探讨如何利用Combine中Schedulers对任务执行进行管理。假定读者已经了解Combine的基本原理,想要进一步对Combine中任务调度进行详细了解。由于Schedulers与GCD(Grand Dispatch Queue),线程(thread),RunLoop都有关联,所以也需要读者有这方面的基础了解才能更好的读懂下文。
本文将会介绍以下几方面内容:
什么是Schedulers?
Combine的默认调度机制
切换Schedulers的操作符
通过实例深入理解Schedulers的调度
Combine中Schedulers的类型和使用
什么是SchedulersScheduler是一个协议(protocol),定义了什么时候(when)和在什么地方(where)执行一个闭包,其中什么地方(where)意味着 runloop,dispatch queue,operator queue,三选一使用哪个;什么时候(when)意味着Combine事件流的虚拟时间,也就是Combine中Publisher,Ope ...
文/一月筠 -- 转载请注明 --
目录…
UICollectionView在iOS中是构建复杂布局的强大工具。iOS13中引入的UICollectionView Compositional Layout为创建自定义布局提供了全新的可能性。本文将深入探讨Compositional Layout的工作原理,以及如何利用它创建复杂的分组、嵌套布局和增强视图。无论您是刚开始学习Compositional Layout,还是想掌握它的高级用法,本文都将是您的完美指南。让我们开始这个令人兴奋的布局之旅吧!
CollectionView Layout由三个布局部分组成
Item
它是层次结构中的最小单元,代表您想要在屏幕上显示的单个数据块
Item展示在Cell内部
Group
Item位于Group内
Group可以将其Item按水平行、垂直列或自定义排列。
Group是布局的基本单位,Group指定数据布局的方向并且可以组合在一起创建更复杂的布局
Section
Section只是一组数据,对应于数据在数据源中的组织方式
Collection View可以有多个Sectio ...
攻城狮
未读
文/一月筠 -- 转载请注明 --
此教程参考 🧊Akilar の糖果屋 🍭,转载需注明出处。
Github Action 简介Github Action 是 GitHub 于 2018 年 10 月推出的一个 CI\CD 服务。
cyan CI / CD 说明
CI/CD 其实说的是三件事情:「持续集成(Continuous Integration)」、「持续交付(Continuous Delivery)」、「持续部署(Continuous Deployment)」。因为「持续交付」和「持续部署」的英文缩写是一样的,所以这三件事情缩写成了 CI/CD 。
每次部署 Hexo 都需要运行指令三件套,随着文章越来越多,编译的时间也随之越来越长,通过 Github Action,我们只需要在每次完成博客的编写或修改以后,将改动直接 push 到远程仓库,之后的编译部署的工作统统交给 CI 来完成即可,如果是看过 Coding 部署教程 ...