先来看看下面的代码
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不希望我们创建过于复杂的单页视图,希望我们尽快进行模块划分。
参考资料
推荐
基础文章推荐
经典教程推荐
- onevcat 大神的《SwiftUI 与 Combine 编程》
- 更新近百篇SwiftUI教程《SwiftUI2020教程》
- 帮您突破数据存储难关《SwiftUI vs CoreData数据存储解决方案》
技术源码推荐
推荐文章
CoreData篇
Combine篇
TextField篇
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
- 《SwiftUI实战之TextField风格自定义与formatters》
- 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
- 《SwiftUI 当键盘出现时避免TextField被遮挡自动向上移动》
- 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
JSON文件篇
一篇文章系列
- SwiftUI一篇文章全面掌握List(教程和源码)
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
- SwiftUI一篇文章全面掌握Picker,解决数据选择(教程和源码)
- SwiftUI一篇文章全面掌握Form(教程和源码)
- SwiftUI Color 颜色一篇文章全解决
技术交流
QQ:3365059189
SwiftUI技术交流QQ群:518696470
- 请关注我的专栏icloudend, SwiftUI教程与源码
https://www.jianshu.com/c/7b3e3b671970