2015-09-04 47 views
1

我試圖檢查元組值,但失敗的錯誤爲:二元運算符'=='不能應用於類型的操作數(@value String!,@value String!)和( String !, String!)元組之間的條件檢查

是否可以在兩個元組之間進行二元檢查?

var guest: (String!, String!) 
{ 
    return ("guest", "1234") 
} 

if (txtEmail.text, txtID.text) == guest // << returning error here 
{ 
    println("Welcome guest user!")  
} 

回答

3

在Swift中,目前沒有內置的==元組。你可以這樣做,而不是:

if txtEmail.text == guest.0 && txtID.text == guest.1 { 
    // ... 

或者,您也可以定義自己的==他們:

func ==<A: Equatable, B: Equatable>(lhs: (A, B), rhs: (A, B)) -> Bool { 
    return lhs.0 == rhs.0 && lhs.1 == rhs.1 
} 

在你的情況,不過,我會用一個結構:

struct User: Equatable { 
    let email: String 
    let id: String 
} 
func ==(lhs: User, rhs: User) -> Bool { 
    return lhs.email == rhs.email && lhs.id == rhs.id 
} 

let guest = User(email: "[email protected]", id: "1234") 
// ... 
+0

製作確定你複製了結構和'=='定義。 – jtbandes