iOS
未读
为 UIControl 实现线程安全的 Block 事件扩展:原理与实践
一、背景与痛点 在 iOS 开发中,UIControl 的 Target-Action 机制是处理用户交互事件的标准方式。然而当面临以下场景时,传统方案会暴露明显缺陷: 线程安全问题:在后台线程修改事件监听可能导致 UI 操作不同步 代码冗余:需为每个事件单独创建 selector 方法 维护成本:
iOS
未读
iOS:特殊符号大全
特殊符号大全分享给大家,直接复制粘贴就可以使用了! ░ ▒ ▬ ◊ ◦ ▣ ۰•● ●•۰ ► ◄ ▧ ▨ ◐ ◑ ↔ ↕ ▪ ▫ ⊙◎ ▧▨◐◑↔↕▪ ▒ ◊◦▣▤▥ ▦▩◘ ◈◇の→あぃ£Ю〓§▶¤๑⊹⊱⋛⋌⋚⊰⊹ ≈ ๑۩۩.. ..۩۩๑ ๑۩۞۩๑ ~.~ ◕‿-。 【】┱ ┲ ღღღ ▶
iOS
未读
SwiftUI基本控件
准备用SwiftUI撸个小项目玩一下,边做边记录用到的东西。 Text Text("文字")
.font(.custom("BradleyHandITCTT-Bold", size: 36))
.frame(width: 200, height: 80, alignment: .bo
iOS
未读
Swift Module 如何被全局引用
今天一个iOS大佬问我一个小问题,他用 cocoapods 集成了一个 swift 的 json 库:SwiftyJSON,用的时候发现有一丝丝不方便的地方,就是在每个用到 SwiftyJSON 的文件中,都需要 import 一下这个 module。 平时他在主工程里写代码的时候,由于都在一个 m
iOS
未读
浅谈iOS中的weak
__weak探究 程序中添加了一个 __weak 变量,查看调用堆栈,看到下一个调用的是 objc_initWeak 函数。 所以我们就 objc_initWeak 函数作为入口,探究 weak。 数据结构 首先了解以下的变量,这些变量在这章的数据结构、函数形参中使用: __weak id weak
iOS
未读
CocoaPods组件化——OC/Swift动静态库混用
缘起 一个swift库,charts。 项目本身是通过 cocoapods 进行组件化管理的。 在没有集成 charts 之前,一切都是那么的美好,天是晴的,雨是停的。 直到有一天,因为业务需要图表功能,经一番调研之后,选择了 charts 集成到工程之中。 然后噩梦就开始了。 直接集成跑项目会直接
iOS
未读
当对象接收到不能处理的消息时调用的方法
当对象接收到不能处理的消息时调用的方法,下面三个方法会按顺序调用。
// 但是自己测试当对象接收到不能处理的消息时调用的方法时,会调用这个方法,在这个方法中拿到sel
- (NSMethodSignature*)methodSignatureForSelector:(SEL)selector {
iOS
未读
iOS:如何在UITableView调用reloadData刷新结束后再同步执行后续操作
调用[tableView reloadData]时,系统并不会等待tableview更新结束后才执行后续代码,而是立即执行后续代码,然后异步地去计算scrollView的高度,获取cell等等。 但是我们又经常需要在tableview刷新结束后同步的执行某些操作,这个是一个隐藏的小坑,有时候稍不注意
iOS
未读
统计iOS工程代码行数
虽然说这是一件毫无意义的事,而且如果代码打成库,统计还不准确。。当时有时候就是需要统计,比如说现在这个时间节点。。 注意,对swift代码无效。。 # 这个是包含空格的
find . "(" -name "*.m" -or -name "*.mm" -name "*.xib" -or -name "
iOS
未读
Objective-C Type Encodings
Objective-C Type Encodings 转自:nshipster,觉得再某些场景上有点用,就直接抄过来了。 @encode,@编译器指令 之一,返回一个给定类型编码为一种内部表示的字符串(例如,@encode(int) → i),类似于 ANSI C 的 typeof 操作。苹果的 O