在 Package.swift 中,将目标添加到库中的目标数组与将目标添加到依赖项数组之间有什么区别。
在第一个示例中,“Helpers”被添加为“MySwiftPackage”目标的依赖项。
let package = Package(
name: "MyTestPackage",
products: [
.library(
name: "MyTestPackage",
targets: ["MyTestPackage"]),
.library(
name: "Helper",
targets: ["Helper"]),
],
dependencies: [
],
targets: [
.target(
name: "MyTestPackage",
dependencies: ["Helper"]), // <---- 'Helper' defined as dependency
.target(
name: "Helper",
dependencies: []),
]
)
Run Code Online (Sandbox Code Playgroud)
在下一个示例中,“Helper”被添加为“MySwiftPackage”库中的另一个目标。
let package = Package(
name: "MyTestPackage",
products: [
.library(
name: "MyTestPackage",
targets: ["MyTestPackage","Helper",]), // <-- 'Helper' defined in targets
.library(
name: "Helper",
targets: ["Helper"]),
],
dependencies: [
],
targets: [
.target(
name: "MyTestPackage", …Run Code Online (Sandbox Code Playgroud) 使用组合和 UIKit,当 viewModel 中包含的数组发生更改时,我尝试更新我的表视图。我的表视图的数据源是单独的,因为我想重用该文件(不同的对象都有一个名称 var,因此表视图将显示名称列表)。
视图模型:
class ViewModel {
@Published var items = [ItemViewModel]()
let service = NetworkService()
init() {
fetchItems()
}
func fetchItems() {
service.fetchItems { items in {
self.items = items.map { ItemViewModel($0) }
}
}
Run Code Online (Sandbox Code Playgroud)
数据源:
class GenericDataSource: UITableViewDataSource {
var list = [String]()
func setList(_ list: [String]) {
self.list = list
}
// then the usual tableView datasource boilerplate
}
Run Code Online (Sandbox Code Playgroud)
视图控制器:
class ViewController: UIViewController {
let viewModel = ViewModel()
let tableDataSouce = GenericDataSource()
var subscriptions = …Run Code Online (Sandbox Code Playgroud)