2016-07-04 36 views
0

與陣列使用我有一個數組:的indexOf在斯威夫特

var swiftBlogs:[Message] = [Message]() 

而且我希望找到一些對象的索引號。我嘗試下面的代碼:

let mm=Message() 
swiftBlogs.indexOf(mm) 

但我得到編譯器錯誤:

Cannot convert value of type 'Message' to expected argument type '@noescape (Message) throws -> Bool' 

我怎樣才能解決這個問題?

+1

什麼是'留言'?它是「可衡量的」嗎? – Hamish

+0

這是一個簡單的類 –

+0

Swift的哪個版本? – Grimxn

回答

0
class Message { 
    var id: Int 
    init(id: Int) { 
     self.id = id 
    } 
} 

var arr: [Message] = [] 
arr.append(Message(id: 1)) 
arr.append(Message(id: 2)) 
arr.append(Message(id: 3)) 
print(arr.indexOf { $0.id == 2 }) // Optional(1) 

檢查聲明!

.indexOf(predicate: (Message) throws -> Bool)

0

對於斯威夫特3是:

myArray.index{$0 === myMessage} 

並返回一個可選。

+0

詳細闡述你的答案多一點。 – JrBenito