var items = [Any]()
我想找到一个对象User
的索引(在本例中是一个类)。
items.indexOf(myUserInstance)
会抛出错误(无法将类型'用户'的值转换为预期参数类型' @noescape(Any)throws - > Bool)
items.indexOf(myUserInstance as? Any)
也会抛出错误。
是否有一个简单的扩展程序可以让我使用indexOf
?现在,我循环每个项目,输入类型,并检查ID属性是否等于...
答案 0 :(得分:1)
可以尝试像
这样的东西form_data_body
可能是一种更优雅的写作方式,但这就是我到目前为止所做的一切
答案 1 :(得分:0)
items.indexOf { $0 as? User === user }
怎么样?
这将返回一个可选项,其中包含User
对象在数组中的第一个索引,如果用户不在集合中,则包含nil
(.None
)。
如果您的User
课程来自NSObject
并且它会覆盖isEqual:
方法,那么您也可以使用==
运算符代替===
找到内容相等的对象; ==
将在幕后调用isEqual:
方法而不是比较指针,因为选择===
。
答案 2 :(得分:-1)
//我们可以像这样检索索引
(items as! NSArray).indexOfObject(user)