Burritos:Swift属性包装器集合





项目名称:Burritos

项目简介

Burritos 是一个由 Swift 编写的开源项目,它提供了一系列的属性包装器(Property Wrappers),这些包装器经过良好测试,可以帮助开发者简化代码,提高开发效率。这些属性包装器覆盖了多种常见的编程场景,如原子写入、值的自动范围限制、复制、默认值设置、动态UIColor支持等。

功能特点

  • @AtomicWrite:提供原子写入访问属性的包装器,读写操作互斥。

  • @Clamping:自动将属性值限制在指定范围内。

  • @Copying:基于 NSCopying 的包装器,用于在初始化和重新赋值时复制值。

  • @DefaultValue:提供默认值的包装器,当属性值为空时回退到默认值。

  • @DynamicUIColor:支持深色模式的UIColor包装器。

  • @EnvironmentVariable:用于获取和设置系统环境变量的包装器。

  • @Expirable:值可过期的包装器,超过给定时间或日期后值将变为nil。

  • @LateInit:使用属性包装器实现的隐式拆包可选类型。

  • @Lazy:延迟实例化直到首次读取访问的包装器。

  • @LazyConstant:与@Lazy类似,但防止改变或变异其包装的值。

  • @Trimmed:自动修剪字符串的包装器。

  • @UndoRedo:自动存储历史并支持撤销和重做操作的包装器。

  • @UserDefault:类型安全的UserDefaults访问包装器,支持默认值。

安装指南

  • Swift Package Manager:通过Xcode 11+集成,添加依赖或在Package.swift中添加依赖。

  • Cocoapods:在Podfile中添加Burritos,也可以只添加需要的子模块。

使用方法

每个属性包装器都有详细的使用示例,例如:

@Atomic var count = 0
count = 99
DispatchQueue.concurrentPerform(iterations: 1000) { index in
    _count.mutate { $0 += 1 }
}
print(count) // 1099
@Clamping(range: 0...1)
var alpha: Double = 0.0

alpha = 2.5
print(alpha) // 1.0

alpha = -1.0
print(alpha) // 0.0
@UserDefault("test", defaultValue: "Hello, World!")
var test: String

或许喜欢

Cool-Loaders-SwiftUI:SwiftUI实现的炫酷加载动画集合

Cool-Loaders-SwiftUI是一个SwiftUI项目,提供多种炫酷的加载动画,全部使用SwiftUI原生创建,包含Metal Shaders,适合iOS应用开发。

最近更新 2024-12-15

SwiftUI-Text-Animation-Library:SwiftUI文本动画库,多种动画效果让应用更生动

SwiftUI-Text-Animation-Library是一个SwiftUI文本动画库,提供多种动画效果,如轮盘、闪烁、块状、模糊、阴影和淡入淡出等,增强应用的动态视觉效果。

最近更新 2024-12-09

SwiftfulLoadingIndicators:SwiftUI加载动画库,20+动画,高度可定制

SwiftfulLoadingIndicators是一个轻量级的SwiftUI加载动画库,提供20多种动画效果,支持高度自定义颜色、大小和速度,适用于iOS、macOS等平台.

最近更新 2025-01-07

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1