2015-07-28 84 views
5

我有一種方法:無法找到XCTAssertEqual接受類型的參數列表([字符串:AnyObject],[字符串:AnyObject])的過載

func tableAsDictionary() -> [String: AnyObject] 

然後我需要測試此:

let tableDictionary = table.tableAsDictionary() 

let expectedDictionary: [String: AnyObject] = [ 
    "id": "1234", 
    "name": "Next to window", 
    "number": 23 
] 

XCTAssertEqual(tableDictionary, expectedDictionary) //error 

無法找到XCTAssertEqual接受類型的參數列表中的過載[String : AnyObject], [String : AnyObject]

回答

7

的問題是==運營商的字典要求 鍵和值類型都爲Equatable

func ==<Key : Equatable, Value : Equatable>(lhs: [Key : Value], rhs: [Key : Value]) -> Bool 

AnyObject不符合Equatable

一個簡單的修復方法是用[String : NSObject]替換字典類型[String: AnyObject] ,然後您的代碼編譯沒有問題。

+0

你是完全正確的:-)謝謝 –

相關問題