先来看看下面的代码
1、正常的代码,可以运行
struct ContentView: View {
var body: some View {
Group {
Text("1")
Text("2 ")
Text("3 ")
Text("4 ")
Text("5 ")
Text("6 ")
Text("7 ")
Text("8 ")
Text("9 ")
Text("10 ")
//Text("11 ")
}
}
}
2、会提示编译错误的代码
struct ContentView: View {
var body: some View {
Group {
Text("1")
Text("2 ")
Text("3 ")
Text("4 ")
Text("5 ")
Text("6 ")
Text("7 ")
Text("8 ")
Text("9 ")
Text("10 ")
Text("11 ")
}
}
}
build时会出现下面的错误
Argument passed to call that takes no arguments
真正的原因
xcode的提示实在是太莫名其妙了,我通过查看文档才发现。SwiftUI 的container是有数量限制,具体限制多少呢。文档里面没有写明(也可能是我们没有找到),但是文档下面的buildblock没有超过10的
后来我又google一下,果然有这个限制。
受影响的其他容器
下面的容器都是有10个对象的限制
- VStack
- HStack
- ZStack
- Group
- List
- 未来的容器
为什么有这个限制
我认为应该是apple不希望我们创建过于复杂的单页视图,希望我们尽快进行模块划分。
参考资料
更多SwiftUI教程和代码关注专栏
- 请关注我的专栏icloudend, SwiftUI教程与源码
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。