2017-02-22 2 views
0

정말 이상한 오류가 있습니다. Swift를 배웠고 배열의 개체 색인을 찾는 데 대한 설명서를 읽었습니다. https://developer.apple.com/reference/swift/array/1689674-index색인 (of : 요소)이 존재하지 않습니다.

그러나이 방법은 내 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) 

// 오류 - 엑스 코드는 내가 나타나고 수 없었던 방법의 이미지를 첨부 내가

를 찾고 있어요 특정 FUNC를 찾을 수 없습니다 이것이 왜 일어날 지에 대한 해답을 찾으십시오.

func 인덱스 (of :) 메소드가 존재 함에도 불구하고 사용할 수 없습니다.

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

게시물에 오타가 있습니까? 'items.index (of : rowitem)'이어야합니다. 'Index' 대신'index'를주의하십시오. – rmaddy

+0

'TaskItem'은 'Equatable'입니까? – Hamish

+0

그게 아니야, 고마워. – user2219097

답변

4

TaskItem 필요가 index(of:)를 사용하기 위해 Equatable 프로토콜을 준수하기 :

나는 다음과 같은 컴파일러 오류가 발생합니다.

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