gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 23:00:04 26 4
gpt4 key购买 nike

我有一个方法:

func tableAsDictionary() -> [String: AnyObject]

然后我需要测试这个:

let tableDictionary = table.tableAsDictionary()

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

XCTAssertEqual(tableDictionary, expectedDictionary) //error

Cannot find an overload for XCTAssertEqual that accepts an argument list of type [String : AnyObject], [String : AnyObject]

最佳答案

问题是字典的 == 运算符需要键和值类型都是 Equatable:

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

但是 AnyObject 不符合 Equatable

一个简单的解决方法是替换字典类型 [String: AnyObject] 通过 [String : NSObject],然后你的代码编译没有问题。

关于swift - 找不到接受类型参数列表的 XCTAssertEqual 的重载 ([String : AnyObject], [String : AnyObject]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31670582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com