如何在[Any]()数组中找到项目的索引?

时间:2016-05-20 05:54:36

标签: ios swift

var items = [Any]()

我想找到一个对象User的索引(在本例中是一个类)。

items.indexOf(myUserInstance)会抛出错误(无法将类型'用户'的值转换为预期参数类型' @noescape(Any)throws - > Bool)

items.indexOf(myUserInstance as? Any)也会抛出错误。

是否有一个简单的扩展程序可以让我使用indexOf?现在,我循环每个项目,输入类型,并检查ID属性是否等于...

3 个答案:

答案 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)