暂无搜索历史
在 Objective-C 中,围绕 #import 顺序存在一些微妙的问题。你可能不相信我,直到你尝试在新项目中重复使用旧代码。
我有时会告诉自己。我们的类也经常这样做。但在 Objective-C 中,有几个地方这样做是有风险的:init 和 dealloc。
我曾一直是点符号的坚定反对者。我认为它掩盖了消息传递,并鼓励程序员通过链式点语法来违反 "得墨忒耳定律(Law of Demeter) "。我甚至将点符号描述为...
消息的点符号不仅仅是 Objective-C 代码的味道。我告诉你,它是恶魔😈!
如果使用得当,预编译头文件可以为您节省宝贵的编译时间。但如果使用不当,预编译头文件可能会隐藏源代码中的问题,而这些问题可能会在你尝试在另一个项目中重复使用部分源...
与所有基于 C 语言的语言一样,Objective-C 文件通常成对出现:有一个头文件和一个实现文件。头文件和实现文件都可以使用 #import 指令来包含其他...
除了极少数例外,使用 Xcode 预处理器宏是一种代码气味。C++ 程序员们已经深有体会:"
在模块化,组件化的热潮下,不管是真的因为业务复杂或者是对于未来业务的提前规划还是只是被这股热潮裹挟着,我们手上不少项目都已经完成了组件化或者正在实现。当历史模块...
Swift 5.5中引入的 async/await 语法,允许用更可读的方式来编写异步代码。异步编程可以提高应用程序的性能,但必须取消不需要的任务,以确保不需要...
Async/await语法是在Swift 5.5 引入的,在 WWDC 2021中的 Meet async/await in Swift 对齐进行了介绍。它是编...
有多种方法可以在代码中定义颜色。最常用的方法是指定三种基色的值 - 红色、绿色和蓝色 (RGB)。本文通过指定色调、饱和度和亮度 (HSB) 的值来探索替代机制...
Slider 控件是一种允许用户从一系列值中选择一个值的 UI 控件。在 SwiftUI 中,它通常呈现为直线上的拇指选择器。有时将这种类型的选择器呈现为一个圆...
编程语言中的单元测试是为了确保编写的代码按预期工作。给定一个特定的输入,您希望代码带有一个特定的输出。通过测试您的代码,能够给您当前的重构和发布建立信心,因为您...
AsyncSequence是并发性框架和SE-298提案的一部分。它的名字意味着它是一个提供异步、顺序和迭代访问其元素的类型。换句话说:它是我们在Swift中熟...
AsyncThrowingStream 和 AsyncStream是Swift 5.5中由SE-314引入的并发框架的一部分。异步流允许你替换基于闭包或 Com...
Sendable 和 @Sendable 是 Swift 5.5 中的并发修改的一部分,解决了结构化的并发结构体和执行者消息之间传递的类型检查的挑战性问题。
SE-313 引入了非隔离(nonisolated)和隔离(isolated)关键字作为添加 Actor 隔离控制的一部分。 Actor 是一种使用新并发框架为...
MainActor 是Swift 5.5中引入的一个新属性,它是一个全局 actor,提供一个在主线程上执行任务的执行器。在构建应用程序时,在主线程上执行UI更...
Swift Actors 是Swift 5.5中的新内容,也是WWDC 2021上并发重大变化的一部分。在有 actors 之前,数据竞争是一个常见的意外情况。...
async-await 是在 WWDC 2021 期间的 Swift 5.5 中的结构化并发变化的一部分。Swift中的并发性意味着允许多段代码同时运行。这是一...