index(of:element)不存在

时间:2017-02-22 15:34:40

标签: swift indexof

我有一个非常奇怪的错误。一直在学习Swift,并且正在阅读有关在数组中查找对象索引的文档:https://developer.apple.com/reference/swift/array/1689674-index

但是我的Xcode中不存在此方法。

以下是一个例子:

var items : [TaskItem]
items = [TaskItem] () 

    let rowitem = TaskItem()
    rowitem.text = "helloworld"
    items.append(rowitem)

//Attempting to find the index of an object

   items.Index(of: rowitem) 

//错误 - Xcode无法找到我正在寻找的特定功能

我附上了一张显示方法的图片,但无法找到答案,说明为什么会出现这种情况。

我找不到使用func index(of :)方法,虽然我知道它存在!

我收到以下编译错误:

  

ChecklistViewController.swift:186:26:参数标签'(of:,_ :)'do   不匹配任何可用的重载

     

ChecklistViewController.swift:186:26:存在'index'的重载   这些部分匹配的参数列表:(Int,offsetBy:Int),   (Self.Index,offsetBy:Self.IndexDistance)

enter image description here

2 个答案:

答案 0 :(得分:7)

TaskItem需要符合Equatable协议才能使用index(of:)

答案 1 :(得分:0)

我完全赞同Tim vermeulen,但我们可以使用下面的代码得到数组的索引,并且它可以完美地工作。

class Name {

    var firstName:String  = String()
    var lastName:String = String()

    var fullName:String{
        return firstName+lastName
    }
}

var items:[Name] = [Name]()

    let rowitem = Name()

    let name:Name = Name()
    name.firstName = "Vala"
    name.lastName = "bbbb"

    items.append(rowitem)
    items.append(name)

//Attempting to find the index of an object
   print(items.index{$0 === name}!)