自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

急需成长的路

急需成长的路

  • 博客(168)
  • 资源 (1)
  • 收藏
  • 关注

原创 Three.js 中 Euler 和 Quaternion 转化的数值可能差异巨大

在 Three.js 中,可以通过 rotation 或者 quaternion 属性来修改 Object3D 的旋转角度。

2024-01-19 10:34:17 420

原创 vite 的配置文件

command:类型为 “build” | “serve”,“build” 表示生成环境,“serve” 表示开发环境mode:运行命令中的 mode 值。yarn vite,获取到的 mode 为默认值 development。envPrefix: 配置为 vite 可以注入到客户端中的环境变量的前缀;loadEnv 方法:可以在 defineConfig 的配置中获取到对应的配置。

2023-12-15 16:52:23 249

原创 PostCSS 的介绍和使用

这些问题,可以使用 PostCSS 进行处理。类似于 babel,PostCSS 用来保证 CSS 的执行万无一失。然后再在浏览器中进行执行。PostCSS 是一个用于处理 CSS 的工具,它采用插件体系,允许开发者通过使用插件来转换、优化和处理 CSS 代码。与传统的预处理器(如 Sass 和 Less)不同,PostCSS 并不是一种新的 CSS 语言,而是通过插件系统扩展了现有的 CSS 语法。PostCSS 的主要优势之一是。开发者可以根据项目的需要,选择并配置不同的插件。

2023-12-15 16:51:21 257

原创 UE C++ 如何获取指定类的实例

在 Unreal Engine 在 C++ 中,可以通过 UGameplayStatics 或者 TActorIterator 来获取指定类型的 Actor 实例数组。

2023-02-07 12:19:51 1367

原创 Cookie,Session 和 Token 究竟是怎么个关系?

Cookie 侧重于客户端对信息的存储行为,Session 和 Token 侧重于服务端用于身份验证的行为。

2023-02-03 12:48:37 141

原创 Unreal Engine 增强输入框架 EnhancedInput

增强输入系统(Enhanced Input System)是对默认输入系统做了一个扩展,通过模块化的方式,解耦了从输入的按键配置到事件处理的逻辑处理过程,提供了更灵活、便利的输入配置和处理功能,同时又能向后兼容虚幻引擎4(UE4)中的默认输入系统。

2023-02-03 11:27:16 1424

原创 UE 数据表 DataTable

当项目中数据量比较大的时候,我们就可以使用到数据表来存储数据。本文主要介绍 DataTable 的创建、获取数据,设置数据的方法。

2022-08-30 12:31:52 1680

原创 Mac m1 上编译阿里 OSS c++ 供 UE 使用

在 macOS M1 上编译阿里 OSS SDK 的整个过程,并在 UE5 中创建插件,并测试编译好的 SDK。

2022-08-18 16:34:33 1248

原创 UE 智能指针的介绍

智能指针 TSharedPtr, TSharedRef, TWeakPtr 的介绍,使用方法,相互转换及注意事项。

2022-08-05 15:34:33 1707

原创 WKWebView 线程终止的原因——之 OOM 的数值

上篇文章介绍了 WKWebView 线程终止的原因——之 OOM 的控制逻辑,那 iOS 的最大可用内存到底是多少呢?我们可不可以将 WebKit 中的计算逻辑拿出来运行一下呢?

2022-05-31 15:14:56 382

原创 WKWebView 线程终止的原因——之 OOM 的控制逻辑

通过 WebKit 源码,总结了 WKWebView 检测内存使用量的方法,计算最大内存限制的方法和默认的处理方法。

2022-05-30 17:58:34 2322

原创 Swift 实现获取、展示 Mac 的 WiFi 密码

一个 Mac 小工具 WiFiPassword,当忘记连接的 WiFi 密码之后,可以用来查看 WiFi 密码,也可以生成二维码给手机扫码自动加入当前 WiFi,还可以将 WiFi 信息成图片。

2021-08-05 09:24:15 394

原创 利用反射 Mirror 快速的获取/打印枚举值

Swift 中的反射机制是通过 Mirror 来实现的,通过 Mirror 可以获取到枚举的关联值的信息,所以,可以使用 Mirror 来简化将枚举转成字符串的过程,又不丢失枚举的关联值。

2021-08-05 09:17:15 249

原创 「SectionReactor」RxSwift 下 Cell 中的事件通知 TableView / CollectionView 的刷新

「SectionReactor」RxSwift 下 Cell 中的事件通知 TableView / CollectionView 的刷新使用 RxSwift 时,在一个页面中,经常会遇到这样的情况,在 Cell 中的事件需要通知 TableView / CollectionView 的刷新,那整个的事件流和数据的传递是这样的么?SectionReactor 提供了一种解决方案,并提供了一个 D...

2020-01-09 02:46:00 416

原创 Drrrible 源码阅读

1. Drrrible 源码阅读在看了一些 RxSwift 的资料之后,感觉在做项目的时候还是不知道如何下手,于是阅读了 Drrrible 的源码。因为 Drrrible 网站的 API 有所改动,Drrrible 项目已经不再维护,目前已经无法进入主页面,我 Forked 之后进行了改动,因为一直 API 已经无法使用,不能看到源项目的所有功能,不过已经可以看到所有页面。因为目前的 AP...

2019-12-30 07:55:48 468

原创 Umbrella

Swift Umbrella 框架Umbrella 是 Swift 下对数据分析的抽象层。作者受启发于 Moya。为什么使用 UmbrellaUmbrella 可以解决下面的问题:当项目中使用多个数据分析库(SDK)时,则需要在数据统计的地方添加或更改各个框架的设置。而 Umbrella 框架,创建了一个抽象层,对项目中所有应用的数据分析库(SDK)进行了统一的管理,只需要调用一个方...

2019-11-13 00:38:01 119

原创 URLNavigator

Swift URLNavigator 框架⛵️ URLNavigator 是 Swift 下一个优雅的 URL 路由。它提供了通过 URL 导航到 view controller 的方式。URL 参数的对应关系通过 URLNavigator.register(_:_:) 方法进行设置。URLNavigator 提供了两种方法来设置 URL 参数的对应关系:URLNavigable 和 URLO...

2019-11-13 00:38:01 278

原创 RxTodo

RxTodo 项目的结构RxTodo 是一个 RxSwift 示例项目,该项目简单,从这个项目中可以学习到 RxSwift 在项目中的实际使用。同时,RxTodo 又使用了几个第三方库,可以学习到 RxSwift 和其他框架的配合使用。结构首页如下:该首页的控制器为 TaskListViewController。TaskListViewController关联的 Reactor 为 ...

2019-11-09 09:46:01 71

原创 UITextInput_markedTextRange

处理 UITextInput 的文本中被标记的内容在 APP 中,经常会遇到需要用户输入文字的地方,比如设置用户名、填写简介、搜索关键字。在这些场景中,又会有进一步的需求:限制用户输入的文本长度根据用户当前输入的文本推荐关键词实时保存用户的输入当用户使用 iOS 系统自带的键盘输入汉字时,时常会出现输入框中带有被标记(marked)的文本。比如用户想输入 我最优秀,界面如下:这时...

2019-11-09 01:27:05 70

原创 处理结果值与结果值的处理

处理结果值与结果值的处理在应用程序中,经常会获取到一个结果值,然后对结果值进行处理。比如:网络请求结束后获取一个结果值,再讲这个结果值进行加工,转化为我们对应的实体类。通常的写法如下:static func request(_ url: URL, completion: ((Data) -> Void)? = nil) { URLSession.shared.dataTask(...

2019-11-07 09:35:31 141

原创 String

String 的常用操作转为为大写字母var capitalized: String { get }字符串转化成 URLpublic var urlValue: URL? { if let url = URL(string: self) { return url } var set = CharacterSet() set.formUnio...

2019-11-07 07:15:03 42

原创 ReactorKit_read_code

ReactorKit 通过扩展给实例添加实例变量ReactorKit 中定义了 Reactor 协议,同时对 Reactor 协议进行了扩展。一个类型通过继承 Reactor 协议,就获得了下面几个属性:action: ActionSubjectcurrentState: Statestate: Observablescheduler: SchedulerdisposeBag: Di...

2019-11-06 08:39:43 108

原创 ReactorKit

Swift ReactorKit 框架ReactorKit 是一个响应式、单向 Swift 应用框架。下面来介绍一下 ReactorKit 当中的基本概念和使用方法。目录基本概念设计目标ViewReactor高级用法Global States (全局状态) View Communication (View 通信)Testing 测试Scheduling 调度...

2019-11-06 03:03:06 413

原创 ReusableKit

Swift ReusableKit 框架ReusableKit 是为 Cocoa 的可重用资源创建的框架。目前支持 UITableView 和 UICollectionView。概述在使用可重用资源的时候,通常需要写下面的代码:collectionView.register(UserCell.self, forCellWithReuseIdentifier: "userCell")col...

2019-11-01 10:00:04 200

原创 Swift Then 框架

Swift Then 框架Then 是一个 Swift 初始化器的语法糖,简化了初始化(或者修改属性)的代码量。Then 框架非常简单,代码量在 60 行左右。Then 框架对 NSObject 扩展了 then() 方法。下面是官方提供的一个示例:let label = UILabel().then { $0.textAlignment = .center $0.text...

2019-10-30 08:42:20 449

原创 ExpressibleByStringLiteral

RxTodoExpressibleByStringLiteral 协议ExpressibleByStringLiteral 协议,表示一个类型可以通过一个字符串来初始化。官方文档举例来说,String 或者 StaticString 实现了 ExpressibleByStringLiteral 协议,所以,我们可以使用一个任意长的字符串来初始化 String 或者 StaticString。...

2019-10-30 08:42:20 205

原创 modifier

Swift 中的修饰符@discardableResult描述当一个方法有返回值时,如果我们没有接收方法的返回值,这是 XCode 我警告我们,如果想消除这个警告,可以在方法前加上 @discardableResult。示例@discardableResultfunc increment(number: inout Int) -> Int { let old = nu...

2019-10-30 08:42:20 82

原创 RxSwift:KVO监听对象属性

RxSwift:KVO监听对象属性在观察某个属性是否变化的时候,采用 KVO 的方式更为简单直接一些。关于 Swift 的 KVO 使用方法,可以查看王巍的 KVO简单来说,在 Swift 中:被观察的属性前需要添加 @objc dynamic 标签,被观察的类必须继承 NSObject如果不符合则会发生以下异常:sent to an object that is not KVC...

2019-10-29 01:53:38 1606

原创 ViewControllerEditButton

UIViewController 的 editButtonItem在 RxSwift 的实例 TableViewWithEditingCommands 当中,有下面的代码:override func viewDidLoad() { super.viewDidLoad() self.navigationItem.rightBarButtonItem = self.editButt...

2019-10-28 02:03:57 54

原创 tools

Object-CMasonry 布局SAMKeychainDZNEmptyDataSetXHLaunchAd 开屏广告、启动广告解决方案SwiftSwiftyUserDefaultsSwiftyStoreKit 内购HandyJSONJXSegmentedViewEmptyDataSet-SwiftReachabilitySwiftyJSONAlamofiregitg...

2019-10-11 02:58:28 29

原创 UISearchController 定制UI(Swift)

UISearchController 定制UI(Swift)以下内容是在 Swift 4.0,iOS 11 下的运行结果默认样式初始化一个 UISearchController,并将 searchBar 设置为 tableView 的 headerView 时,如以下代码:let searchController = UISearchController.init(searchResu...

2018-05-25 05:38:52 326 1

原创 2018_05_14_Merging_a_pull_request

合并 pull request(Merging a pull request)本文翻译自 GitHub 帮助文档 Merging a pull request。当工作完成之后,就可以将 pull request 合并到上游分支上。任何对仓库有 push 权限的人都可以将其合并。如果在合并 pull request 时没有任何冲突,你就可以在 GitHub 上直接合并。如果在合并 pull...

2018-05-14 07:08:20 147

原创 2018_05_10_Syncing_a_fork

同步 fork(Syncing a fork)当我们 fork 一个开源仓库之后,应该怎样将上游的仓库同步到我们的 fork 上呢?以下文章翻译自 GitHub 的帮助文档 Syncing a fork。同步一个仓库的 fork 可以使它和上游仓库的最新状态保持同步。在将上游仓库同步到你的 fork 之前,你必须在 Git 上配置上游仓库的远程站点。同步的步骤如下:打开终端...

2018-05-14 07:08:20 96

原创 2018_05_10_Fork_A_Repo

Fork 一个仓库本文翻译自 GitHub 的帮助文档 Fork A Repofork 一个仓库fork 就是复制一个代码仓库。fork 一个代码仓库之后,你就可以任意的尝试去修改代码,而不会影响到源项目。fork 通常用在你打算修改别人的项目,或者使用别人的项目作为实现自己想法的开端。修改别人的项目修改别人项目的一个很好的例子就是修复 bug。当你发现一个 bug 时可以通过 iss...

2018-05-14 07:08:20 95

原创 DispatchQueue_Attributes

DispatchQueue 的属性在创建队列时可以对队列的属性进行设置,那具体都能设置哪些参数呢?下面看 DispatchQueue 的初始化方法:public convenience init(label: String, qos: DispatchQoS = default, attributes: DispatchQueue.Attributes = default, autorelea...

2018-05-08 09:03:46 148

原创 Swift_Debug_Tip

Swift 调试小技巧调用堆栈在调试阶段,除了打断点查看当前线程的调用堆栈外,也可以使用 Thread 的方法 callStackSymbols 来获取当前的调用堆栈符号。例如我们可以用下面的代码打印当前线程的调用堆栈:for stackSymbol in Thread.callStackSymbols { print(stackSymbol)}打印当前代码的文件信息有时候我们...

2018-05-08 09:03:46 56

原创 RxSwift_main_Queue

在开发 iOS 的时候,我们都知道 UI 相关的操作必须放在主线程,但是只要放在主线程就安全了么?答案是否定的。在苹果的 MapKit 框架中,一个名为 addOverlay 的方法不仅要放在主线程中,而且必须放在主队列中。苹果公司的 Developer Technology Support 承认这是一个 bug。所以在进行 UI 相关的操作时,最安全的方式是在主线程主队列中进行。那么应该怎...

2018-05-07 04:01:37 115

原创 RxSwift_Note_1

RxSwift 杂记(1)协议 protocol 背后的 class在 RxSwift 中有时会在协议 protocol 后面加上 class 关键字,比如下面的协议:protocol SynchronizedDisposeType : class, Disposable, Lock { func _synchronized_dispose()}extension Synchr...

2018-04-16 16:02:56 58

原创 RxSwift_TSD

RxSwift 利用线程特有数据(TSD)解决循环调用的问题在 RxSwift 框架的 CurrentThreadScheduler.swift 文件中定义了 CurrentThreadScheduler 类,因为需要符合 ImmediateSchedulerType 协议,所有实现了下面的方法:public func schedule<StateType>(_ state: St...

2018-04-04 14:37:09 68

原创 Thread_Specific_Data

线程特有数据(Thread Specific Data)在单线程程序中,我们经常要使用全局变量来实现多个函数间共享数据。在多线程环境下,由于数据空间是共享的,因此全局变量也为所有线程所共有。但有时在应用程序设计中有必要提供线程私有的全局变量,仅在某个线程中有效,但可以跨多个函数访问,这样每个线程访问它自己独立的数据空间,而不用担心和其它线程的同步访问。比如:在程序中每个线程都使用同一个指针索...

2018-04-04 02:21:31 143

300道C++题目.pdf

300道到c++题目及解释,让c++学习者对c++更加的了解。

2012-11-04

空空如也

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

TA关注的人

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