首页 > 解决方案 > 当方法参数为协议时,如何在 SwiftUI / Xcode 中轻松确定可以传递哪些类型?

问题描述

我是 SwiftUI 的新手,对 Xcode 也不是很老。我不确定这只是我的怀疑还是 SwiftUI/Xcode 应该工作的方式。

例如,如果我查看Text("").border或者Text("").background然后按照 Xcode 自动完成,则应该将类型确认传递给 ShapeStyle 或 View。由于 Color 扩展了 View 和 ShapeStyle ,因此可以为边框和背景提供颜色,例如Text("").border(Color.black)Text("").background(Color.gray)

在此处输入图像描述

在此处输入图像描述

我可能要求太多,但苹果开发人员文档和 Xcode 都没有明确或容易地让开发人员确定可以通过 Color。

我可以看到开发人员是否已经知道或研究了 Color 实现 View 和 ShapeStyle ,那么这样的人可以在第一个实例中编写代码,但是对于新手来说,当文档和 Xcode 的自动完成建议时,不容易推断出 Color 也可以提供提供 View 和 ShapeStyle。

问题是,这是否应该像开发人员一样工作的方式必须对类型和层次结构有很好的了解,或者有什么方法可以(尤其是新手)通过遵循苹果开发人员文档和/ 或 Xcode 中我可能不知道的东西?

标签: iosxcodeswiftuixcode11

解决方案


从 Xcode 11.5 开始,在这方面并没有什么特别之处。

哪些类符合 View / ShapeStyle 等协议,可以在“Relationships/Conforming types”下的协议文档中查找:

关系/符合类型

它有助于阅读大量实用的 SwiftUI 代码来吸收这些想法。SwiftUI 教程中的示例项目是一个好的开始。


推荐阅读