- 博客(178)
- 资源 (7)
- 问答 (6)
- 收藏
- 关注

原创 Swift JSON转模型Xcode插件
SwiftJSONModeler是一个Xcode插件,一键转换json字符串为Swfit模型,一键转化 YApi 平台接口为模型,并且自动引入注释。
2020-02-07 16:55:58
1315
原创 iOS从Matter的设备认证证书中获取VID和PID
设备认证证书也叫 DAC, 相当于每个已经认证的设备的标识。包含了 VID 和 PID.根据 Matter 对于设备证书的规定,DAC证书subject应该包含VID 和 PID. 可通过解析 X509 证书读取subject 来获得信息。
2024-12-23 20:00:00
599
原创 iOS 收集打印日志
可以将要在Xcode 控制台打印的日志写在沙盒,最后导出分享,进行问题分析。正式版本不建议使用,避免增加用户内存。配合解决顽固 Bug 可以通过该方法收集打印日志。
2024-08-30 21:30:00
796
原创 Swift 注释和文档
今天,我知道我写是什么,上帝和我知道明天,我知道这个代码什么意思,后天,我知道这是我写的代码,一周后,这TM谁写的代码,此时只有上帝才知道啥意思论代码注释的重要性。
2023-04-20 17:09:29
2012
2
原创 iOS Matter 操作证书签发方案
在 Matter 配网和操作中,为了信息交互的安全,在配网时,Commissioner自身需要完整的证书,同时需要向设备安装操作证书。
2023-04-20 14:13:54
1764
原创 使用Swift编写脚本
通常我们在编写脚本处理自动化或者通用处理的时候,使用的是 Shell 语言,但是作为有一个 Swift 语言使用者,你应该知道,Swift 也可以作为脚本语言来编写脚本。为什么用 Swift 了?1. 降低 iOS 开发者的脚本开发难度2. 利用 Swift 高级语言特点3. 轻松调用 Swfit 库4. 在 iOS Mac 上处理脚本更方便...
2022-04-29 17:38:17
4323
原创 Swift 使用正则表达式
正则表达式对于字符串的匹配、查找、替换是非常实用的。那在 Swift 中怎么来使用正则表达式了?以及正则表达式初高级使用。
2022-04-28 17:41:06
4010
原创 iOS多环境切换
在应用开发中,我们的流程为:开发-测试-预发布-发布 AppStrore所以就会有不同的环境,比如开发环境,测试环境,预发布环境以及正式环境那么就会产生配置不同环境的如下需求。1. 不同环境设置不同 host ,应用图标(可选)2. 能够快速查看环境、版本号、build 号等信息3. 能够配合自动打包
2022-04-14 18:10:34
7203
1
翻译 Swift监听网络状态
我们将介绍使用Swift 5在iOS上监控网络连接状态的原生解决方案,以及如何使用Network Link Conditioner。你将会发现要监听设备网络连接状态,大部分都是依赖第三方框架,如Reachability、Alamofire的NetworkReachabilityManager,或建议您创建一个定期尝试提出HTTP请求的实用程序,以确定网络连接状态。我们只需要苹果的Network框架中的NWPathMonitor 即可实现监听。
2022-02-28 18:34:27
3875
转载 UIButton状态探索和自定义
作为 **iOS** 开发者,一提到控件,就不得不提到 `UIButton`,它做为 **iOS** 系统最常用的响应用户点击操作的控件,为我们提供了相当丰富的功能以及可定制性。而我们的日常工作的 80% ~ 90% 做是在与 **UI**打交道,处理控件在用户的不同操作下的不同状态,最简单的,比如用户没有登录时,按钮置灰不可点击,用户点击时出现一个反色效果反馈到用户等等。对常用状态的定义,系统在很早的时候就给出了如果遇到满足的状态怎自定义添加了。
2022-02-09 16:38:29
1171
转载 网易云音乐 iOS14小组件实践手册
苹果在今年的 WWDC20 上发布了小组件(WidgetKit),支持在 iOS、iPadOS 主屏幕展示动态信息和个性化内容。加上 iOS 系统应用抽屉的加入,苹果对一向保守主屏幕大动干戈,导致用户也对小组件非常期待。但小组件的运行限制很多,如何在有限的机制上怎样做好用户体验就成为需要完成的挑战。此文介绍小组件创建、原理和使用实战
2022-02-09 15:31:22
2842
原创 Objective-C NS_OPTIONS 类型的枚举
NS_Options 是 Objective-C 中枚举的一种,被定义为按位掩码,可以进行组合枚举表示。用简单的`|`或者`&`数据运算来实现整数的编码。每一个值不是自动被赋予从0开始依次累加1的值,而是手动被赋予一个带有一个bit偏移量的值:类似`1
2021-12-31 11:02:09
2475
翻译 iOS Core Bluetooth 基础知识
本文假设您了解蓝牙低能耗(BLE)和iOS编程的基础知识(包括许多iOS原生API常见的异步调用的委托模式),并旨在作为iOS核心蓝牙库来龙去向的综合指南。我们将指导您了解API的主要组件,包括扫描、连接和与BLE外围设备交互的基本步骤,以及iOS上BLE的常见陷阱和要了解的事情。
2021-12-24 18:06:29
3538
转载 蓝牙 GATT 协议
现在低功耗蓝牙(BLE)连接都是建立在 GATT (Generic Attribute Profile) 协议之上。GATT 是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。
2021-12-22 16:53:51
1753
原创 iOS模拟器发送通知和UI测试
我们可能通过点击通知直接跳转到页面指定页面,或者点击通知打开web页面,更或者通过其他应用启动 app打开指定页面。面对这种跳转指定页面我们应该如何做 UI测试了?
2021-12-11 17:43:53
3373
转载 iOS混编参考阅读
鉴于 Objective 已经打下了一大片江山,但是还是要将江山与 Swift 共享,所以就涉及到项目使用 Objective-C 和 Swift混编,如果让这两种语言更加相互融合,充分利用 Swift 的语言优势了。怎样让 Objective-C 更便利桥接给 Swift以下内容来源于师大小海腾–掘金,详情建议阅读原文,原文有许多举例和相关参考阅读。iOS 混编|为 Objective-C API 指定可空性关键词:nullable、nonull、null_resettable、null_rese
2021-11-23 15:58:54
1093
翻译 利用扩展来约束泛型
利用扩展来约束泛型原文:Specialized extensions using generic type constraints将Swift强大的泛型系统与任何Swift类型都可以与新的API和功能扩展这一事实相结合,使我们能够编写有针对性的扩展,在类型或协议符合特定要求时有条件地向其添加新功能。这一切都从where关键字开始,它允许我们在一系列不同情况下应用泛型类型约束。在本文中,让我们看看该关键字如何应用于扩展,以及可以通过这样做解锁哪种模式。基于泛型类型限制扩展我们可以使用更具体的API扩
2021-11-02 14:05:30
892
原创 Codable 基本使用
Codabel JSON转模官方文档:Using JSON with Custom TypesJSON 介绍:JavaScript Object NotationCodable 是 Swift 引入的全新的编解码库,使开发者更方便的解析JSON 或 plist 文件。支持枚举、结构体和类。协议定义如下:typealias Codable = Decodable & Encodablepublic protocol Decodable { public init(from dec
2021-10-27 14:29:29
3074
1
原创 【iOS数据持久化】偏好设置(UserDefaults)
官网文档:NSUserDufaultClass Reference关于偏好设置:AboutPreferences and SettingsUserDefualts是一种便利的,通过key-value的一种持久化方案。常用于存储应用相关的用户设置,自定义个性化设置,首次使用引导等。适合于简单数据小量储存,涉及记住密码和隐私,建议采用keyChain。偏好设置以plist文件形式存储在应用沙盒的Preferences目录下,文件名:bundleId.plist对于 Swift 来说 UserDefua
2021-10-15 14:12:11
2881
原创 RxSwift设置 UITextField文本订阅未响应
通过以下代码,可以快速实现输入框文本变化监听textField.rx.text.orEmpty .subscribe(onNext: { print("您输入的是:\($0)") }) .disposed(by: disposeBag)但是,如果通过设置text属性则无法触发。textField.text = "修改文本"解决方案我们在设置值的同时,手动发送一个事件,则会触发订阅。text
2021-09-30 11:07:51
1049
原创 【代码段】UITableView Section圆角
UITableView Section圆角extension UITableView { /// section圆角 需要在 `WillDisplayCell`中调用 /// - Parameters: /// - cell: cell 对象 /// - indexPath: index /// - cornerRadius: 圆角值 /// - inset: inset 偏移,比如 cell 含有 containerView ///
2021-08-30 16:29:56
373
原创 【代码段】UIView 部分圆角
UIView 部分圆角我们可以使用view.layer.cornerRadius = 10来实现全部圆角,但是如何正确实现部分圆角了。通过 maskLayer 方式iOS 11之前通用处理方式 /// 部分圆角 /// - Parameters: /// - corners: `UIRectCorner`枚举 /// - radii: 圆角值 /// - size: 需要圆角的矩形大小,默认值为 nil 使用当前 view bounds。 如果不传入需要
2021-08-23 15:48:22
1445
原创 UIScrollView 使用
UIScrollView 基本使用苹果的官方文档:Scroll View Programming GuideUIScrollView 是 iOS 非常重要的具备滚动能力的视图,能滚动的控件基本继承自 UIScrollView,比如UITableView, UICollectionView, UITextView等。主题响应滚动交互var delegate: UIScrollViewDelegate?内容大小和偏移量var contentSize: CGSize视图可以滚动的大小,决定了可以滚
2021-08-20 16:33:48
754
1
原创 Git 只拉取部分文件
Git 只拉取部分文件git sparse-checkout 稀疏检出功能sparse-checkout稀疏检出是 git 官方提供的命令,可以做到部分文件拉取。主要是一下步骤:mkdir filename 创建本地文件目录git init加入 git 版本管理git config core.sparsecheckout true开启稀疏检出功能在.git/info目录下新建sparse-checkout文件该文件的编写语法与.gitignore 忽略文件方式一致wantfiledir
2021-04-26 11:43:22
8176
原创 Swift Property Wrapper 属性包装器
@propertyWrapper属性包装器:在定义存储属性时添加一个分离层,代表该属性被包装起来,且在包装器内部可以做一些事情。把一些通用复用的代码放在了包装器中,比如线程安全检查或者数据存储到数据库中。个人理解:简单定义的属性只能具备存储功能,供其他方法调用。而被属性包装器修饰的属性不仅具备存储能力,还可以具备计算型属性的能力(setter,与 getter),甚至还可以通过属性包装器存储更多变量或者方法。官方文档: Property Wrappers Property Wrappers 演化进程
2021-04-23 15:56:45
1775
原创 Xcode 使用小技巧
Xcode 使用小技巧初始化构造Xcode 为 swift 类或者机构体提供初始化构造器生成,虽然有时候生成可能不符合,但是我们可以生成后快速修改。按住 Cmd 键,左键选择需要生成的类或者结构体,即可弹出下面弹窗,选择 Generate Memberwise Initializer即可拼写检查打开自带的拼写检查,可以检查单词拼写错误和驼峰命名问题提示。打开方式:Edit --> Format --> Spelling add Grammar --> Check Spel
2021-04-19 16:35:16
484
1
原创 iOS 定时器使用(Timer 和 CGD)
在程序开发中,我们常常借助定时器完成定时任务,比如短信验证码倒计时、运动计时等具有时间序列概念的操作。最常用的定时方式有Timer 和GCD dispatchTimerTimer的使用Timer 官方文档Timer/NSTimer: 在某个时间间隔之后触发的定时器,向目标对象发送指定的消息。 Timer 的完成往往配合runloop和相应的 mode。初始化创建即添加到当前 runloop通过带 scheduledxxx方法初始化的定时器,创建就会添加到当前 runloop ,且以 defau
2021-04-13 17:33:41
3631
OC和Swift混编.pdf
2020-05-06
web应用项目工程结构
2016-06-12
ios中的设计模式(swift)
2016-04-11
Swift Package Manager低版本项目如何使用高版本库。
2024-12-23
iOS AFNetworking 请求返回400,如何打印后台返回信息
2018-05-28
ios Swift 数组初始化
2018-03-16
xcode9 bate的模拟器打不开?
2017-06-20
iOS 中Image View图片无法显示
2015-12-29
ios开发者书库文档怎样下载
2015-12-01
swift 数组定义 文档和xcode实际操作不一致,你们有遇到吗
2015-10-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人