2017-02-22 8 views
0

Ich habe einen wirklich seltsamen Fehler. Ich habe Swift gelesen und las die Dokumentation über das Finden des Index eines Objekts in einem Array hier: https://developer.apple.com/reference/swift/array/1689674-indexIndex (von: Element) existiert nicht

Diese Methode existiert jedoch nicht in meinem Xcode. Hier

ein Beispiel:

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) 

// Fehler - Xcode kann nicht die spezifische func finden ich suche

Ich habe ein Bild der Methoden angebracht, die angezeigt werden und nicht in der Lage gewesen, finden Sie eine Antwort dafür, warum dies überall passieren könnte.

Ich kann die Verwendung der Func Index (of:) Methode nicht finden, obwohl ich weiß, dass es existiert!

erhalte ich den folgenden Compiler-Fehler:

ChecklistViewController.swift:186:26: Argument labels '(of:, _:)' do not match any available overloads

ChecklistViewController.swift:186:26: Overloads for 'index' exist with these partially matching parameter lists: (Int, offsetBy: Int), (Self.Index, offsetBy: Self.IndexDistance)

enter image description here

+0

Ist das ein Tippfehler in Ihrem Beitrag? Es sollte 'items.index (of: rowitem)' sein. Notieren Sie "Index" anstelle von "Index". – rmaddy

+0

Ist 'TaskItem'' Equatable'? – Hamish

+0

war es nicht, danke – user2219097

Antwort

4

TaskItem Anforderungen an das Equatable Protokoll anzupassen, um index(of:) zu verwenden.

0

Ich bin absolut einverstanden mit Tim Vermeulen, aber wir können den Index der Array mit dem untenstehenden Code und seine funktioniert perfekt.

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}!) 
Verwandte Themen