Articles

Erreur Xcode et Swift : this key is not key value coding compliant

Lors du développement d’un projet de Gestion des Recettes sous iOS, je voulais pouvoir utiliser les prédicats qui permettent de faire des recherches dans des collections d’objets, pour peu qu’ils héritent de NSObject.

Mon objet Recette a les propriétés suivantes :

var id: Int?
var titre: String?
var ingredients: String?
var etapes: String?
var source: String?
var author: String?
var author_id: Int?
var url_thumb: String?
var url_header: String?
var favorite_id: Int?
var tags = [String]()

La première utilisation des prédicats pour cette application s’est trouvé sur le titre, sans souci particulier.

Par contre, en voulant utiliser le même mécanisme pour filtrer sur les Id de favoris, XCode me renvoyait toujours la même erreur :

This key is not key value coding compliant for class recettes.Recette

Après bien des recherches, j’ai compris que les Int Swift ne sont pas « key value coding compliant » ! Pour que les prédicats fonctionnent, il suffit de remplacer Int? pas NSNumber?