2010-09-17 10 views
0

Selon le titre, vraiment. J'ai une entité qui a une propriété "idNumber". Tout comme je peux lier une zone de texte aux rangéesObjects avec le chemin de clé de modèle "@count" du contrôleur de tableau pour fournir un compte de tous les objets dans le tableau, je voudrais pouvoir lier un champ de texte aux arrangedObjects du contrôleur de un transformateur de valeur pour renvoyer un compte d'un sous-ensemble filtré du tableau (ces objets avec un numéro d'identification> 5).Données Cocoa Core: Utilisation d'un transformateur de valeur sur les rangéesObjects d'un contrôleur de matrice pour fournir un compte filtré

Je suppose que c'est possible?

Ma tentative est:

Je les ai châtiés la zone de texte au contrôleur RAID, contrôleur de clé « arrangedObjects » Modèle de chemin clé « » Valeur Transformer « AllToSomeTransformer ».

Le code pour le AllToSomeTransformer est:

-(id)transformedValue:(id)value { 
NSArray *arrayOfAllCars; 

if (value == nil) return nil; 

if ([value respondsToSelector: @selector(count)]) { 
    arrayOfAllCars = [NSArray arrayWithArray:value]; 
} else { 
    [NSException raise: NSInternalInconsistencyException 
       format: @"Value (%@) does not respond to -count.", 
[value class]]; 
} 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"idNumber > %@", [NSNumber numberWithInt:5]]; 

NSArray *arrayOfBlueCars = [arrayOfAllCars filteredArrayUsingPredicate:predicate]; 

return [NSNumber numberWithInt:[arrayOfBlueCars count]]; 
} 

Je crois que mon transformateur de valeur est correctement enregistrée etc. A titre d'essayer de comprendre ce qui se passe j'ai ajouté NSLog sorties par le code ci-dessus. Il semble que la méthode ci-dessus n'est appelée qu'une seule fois, au démarrage de l'application, et non plus lorsque de nouveaux objets sont ajoutés au tableau. Serait-ce la raison pour laquelle le champ de texte n'est pas mis à jour avec des valeurs ??

Merci, Oli

Répondre

0

Depuis le transformateur est appelé et fonctionne, mais une seule fois, qui suggèrent qu'il ya quelque chose de mal avec les liaisons telles que le transformateur ne respecte pas les changements dans arrangedObjects. Je ne suis pas sûr de ce que ce serait.