找不到接受类型参数列表的XCTAssertEqual的重载([String:AnyObject],[String:AnyObject])

时间:2015-07-28 08:01:24

标签: swift xctest

我有一种方法:

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]的重载

1 个答案:

答案 0 :(得分:7)

问题是词典的==运算符需要这样做 密钥和值类型都是Equatable

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

AnyObject不符合Equatable

一个简单的解决方法是替换字典类型[String: AnyObject]  通过[String : NSObject],您的代码可以毫无问题地编译。