2015-07-28 13 views
5

Ho un metodo:Non riesci a trovare un sovraccarico per XCTAssertEqual che accetta una lista di argomenti di tipo ([String: ANYOBJECT], [Stringa: ANYOBJECT])

func tableAsDictionary() -> [String: AnyObject] 

poi ho bisogno di provare questo:

let tableDictionary = table.tableAsDictionary() 

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

XCTAssertEqual(tableDictionary, expectedDictionary) //error 

non riesco a trovare un sovraccarico per XCTAssertEqual che accetta una lista di argomenti di tipo [String : AnyObject], [String : AnyObject]

risposta

7

Il problema è che l'operatore == per i dizionari richiede che sia la chiave e il tipo di valore è Equatable:

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

ma AnyObject non è conforme a Equatable.

una semplice correzione è quello di sostituire il tipo di dizionario [String: AnyObject] da [String : NSObject], quindi il codice compila senza problemi.

+0

Hai perfettamente ragione :-) Grazie –

Problemi correlati