以下代码在 iOS 和 Catalyst 上编译并运行得很好。但当我在 macOS 应用程序中运行它时,出现错误。这是一个已知的错误还是我做错了什么。macOS Catalina 版本 10.15.3,Xcode 版本 11.3.1。
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
Text("Item #1")
Text("Item #2")
}
.navigationBarTitle("Title", displayMode: .inline)
.navigationBarItems(leading: Text("Add"))
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误,
Value of type 'List<Never, TupleView<(Text, Text)>>' has no member 'navigationBarTitle'
当我运行下面的代码并单击某个帐户时,它会显示与该帐户关联的所有日记行。如果我单击添加按钮,它会使用新的日志行更新日志行列表。但只有一次。当我再次单击它时,它会增加余额,但不会更新行列表。如果您单击另一个帐户,然后单击返回,您将看到完整列表。但它只自动更新列表一次?
我尝试account.lines在列表中替换为self.shared.journalLines.filter({$0.accountID == account.id})但我得到了相同的行为。
这是一个错误还是我错过了什么?如果这是一个错误,解决方法是什么?
import SwiftUI
struct ContentView: View {
@EnvironmentObject var shared:SharedObject
var body: some View {
NavigationView {
VStack {
Button(action: {self.shared.test()}) {Text("Add")}
List(self.shared.accounts) { account in
NavigationLink(destination:
List(self.shared.journalLines.filter({$0.accountID == account.id})) { line in
HStack {
Text(line.payee)
Spacer()
Text("$ \(line.amount, specifier: "%.2f")")
}
}.frame(maxWidth: .infinity, maxHeight: .infinity)
) {
HStack {
Text(account.name)
Spacer()
Text("$ \(account.balance, specifier: "%.2f")")
}
}
}
.frame(width: 200)
}
}.frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
struct Account:Identifiable {
@ObservedObject …Run Code Online (Sandbox Code Playgroud) l1 = [1, 2, 3, 4]
l2 = [(10, 20), (30, 40), (50, 60), (70, 80)]
>>> print(list(zip(l1, l2)))
[(1, (10, 20)), (2, (30, 40)), (3, (50, 60)), (4, (70, 80))]
Run Code Online (Sandbox Code Playgroud)
但是,我希望它只是一个包含四个元组的列表:
[(1, 10, 20), (2, 30, 40), (3, 50, 60), (4, 70, 80)]
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
>>> print(list(zip(l1, *l2)))
[(1, 10, 30, 50, 70), (2, 20, 40, 60, 80)]
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
如何使用元组列表或列表列表压缩列表?
我知道我无法编写在所有机器上运行/编译的汇编语言,因为它们有不同的指令集、操作码、寄存器等。我的问题是,即使指令集不同,汇编语法(或语言)它本身)对于任何架构都一样吗?