AutoChangeable
AutoChangeable 是一个简单的库,它提供了复制带有更改属性 Swift 类型的实例的便捷方式
struct User: AutoChangeable {
let id: Int
let name: String
let age: Int
}
let steve = User(id: 1, name: "Steve", age: 21)
// Copy the instance by changing the `name` and `age` properties
let steveJobs = steve.changing { newUser in
newUser.name = "Steve Jobs"
newUser.age = 41
}
要求
- iOS 10.0+ / macOS 10.12+ / watchOS 3.0+ / tvOS 10.0+
- Xcode 11.0+
- Swift 5.1+
用法
使用 AutoChangeable 的最便捷方式是配置 代码生成 并使您的结构体遵从 AutoChangeable
协议
struct User: AutoChangeable {
let id: Int
let name: String
let age: Int
}
如果您不想配置代码生成,您只需手动实现从复制的初始化
extension User: Changeable {
init(copy: ChangeableWrapper<Self>) {
self.init(
id: copy.id,
name: copy.name,
age: copy.age
)
}
}
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖项管理器。您可以用以下命令安装
$ gem install cocoapods
要将AutoChangeable集成到您的Xcode项目中,请使用CocoaPods,并在您的Podfile
中指定它
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'AutoChangeable'
end
最后运行以下命令
$ pod install
Carthage
Carthage 是一个去中心化的依赖管理器,它可以构建您的依赖并为您提供二进制框架。您可以使用以下命令使用Homebrew安装Carthage:
$ brew update
$ brew install carthage
要使用Carthage将AutoChangeable集成到您的Xcode项目中,请在您的Cartfile
中指定它
github "almazrafi/AutoChangeable" ~> 1.0.1
最后运行carthage update
来构建框架,并将构建的AutoChangeable.framework
拖到您的Xcode项目中。
Swift Package Manager
Swift Package Manager 是一个用于管理Swift代码分布的工具。它集成到Swift构建系统中,以自动化下载、编译和链接依赖项的过程。
要使用Swift Package Manager将AutoChangeable集成到您的Xcode项目中,请将其添加为依赖项到您的Package.swift
.package(url: "https://github.com/almazrafi/AutoChangeable.git", from: "1.0.1")
然后,指定"AutoChangeable"
作为希望使用AutoChangeable的目标的依赖项。
以下是一个示例Package.swift
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "MyPackage",
products: [
.library(name: "MyPackage", targets: ["MyPackage"])
],
dependencies: [
.package(url: "https://github.com/almazrafi/AutoChangeable.git", from: "1.0.1")
],
targets: [
.target(name: "MyPackage", dependencies: ["AutoChangeable"])
]
)
代码生成
要为AutoChangeable
协议生成代码,您需要首先安装Sourcery命令行工具。
您可以使用为Sourcery准备的Stencil模板,该模板可以从存储库发布页面的最新版本文件中下载。
如果使用CocoaPods安装AutoChangeable,它已经包含此模板和一些生成代码的帮助脚本。您可以选择手动运行它或在自定义构建阶段使用以下命令运行它:
Pods/AutoChangeable/Bin/AutoChangeable \
--sources Path/to/yours/sources \
--output Path/to/generated/file
通信
- 如果您需要帮助,请开启一个问题。
- 如果您发现了一个错误,请开启一个问题。
- 如果您有功能请求,请开启一个问题。
- 如果您想贡献力量,请提交一个拉取请求。
许可
AutoChangeable 在MIT许可下可用。有关更多信息,请参阅 LICENSE 文件。