我在我的iOS项目中使用Firestore,它允许您像这样查询对象(示例取自其文档):
// Create a reference to the cities collection
let citiesRef = db.collection("cities")
// Create a query against the collection.
let query = citiesRef.whereField("state", isEqualTo: "CA")
该isEqualTo
参数的类型为Any
(实际的Obj-C标头中的id
),但实际上,它仅适用于基本类型,例如字符串和数字(可能还有一些其他类型) ?)。如果您提供某种结构,该应用就会崩溃。
因此,为了让编译器防止这种情况,我想添加自己的函数,该函数不使用Any
类型,而是一个仅允许基本类型的协议。我想知道是否有Swift已经提供的协议?
类似于在UserDefaults中存储内容,它也使用Any
类型,但实际上只允许存储一组有限的类型。是否有类似PropertyListSerializable
之类的协议?
实际上,某处是否有内置协议列表? Apple似乎没有提供此功能,因此很难知道已经提供了什么和可用的东西。