2010-05-31 6 views
0

Bon, j'ai une application assez simple à configurer.Utilisation d'un UIPickerView pour établir une relation CoreData

J'ai deux entités CoreData différentes, Jeux et Plateformes, chacune ayant un attribut: nom, et elles ont une relation un-à-plusieurs entre elles.

Les plates-formes sont remplies lors du premier lancement de l'application et ne changeront jamais à la suite de la saisie par l'utilisateur.

Je travaille sur ma vue Ajouter pour permettre à l'utilisateur d'ajouter de nouveaux jeux à sa base de données personnelle, et chaque jeu doit sélectionner à partir d'une plateforme. La vue d'ajout elle-même est une vue groupée avec des cellules personnalisées statiques. En tapant sur la cellule de la plate-forme, l'utilisateur doit avancer vers une autre vue pour sélectionner la plate-forme.

Ma pensée est que UIPickerView semble être un choix logique pour le contrôle, puisque la liste de la plate-forme est statique, mais je ne suis pas sûr de savoir comment l'utiliser avec CoreData. Même si je construis une requête d'extraction pour obtenir les objets Platform et extraire les chaînes, comment puis-je relier le nouvel objet Game à l'objet Platform d'origine?

Répondre

0

Cela ne nécessite que quelques lignes de code, en supposant que vous instancier vos plates-formes objet juste avant d'enregistrer les données, vous devez faire quelque chose comme:

Platforms *newPlatform = (Platforms *) [NSEntityDescription insertNewObjectForEntityForName:@"Platforms" inManagedObjectContext:self.managedObjectContext]; 
[newPlatform setValue:@"yourPlatformName" forKey:@"name"]; 
[newPlatform setValue:yourGameObject forKey:@"games"]; 

NSError *error; 
if (![[self managedObjectContext] save:&error]) { 
    // Handle error 
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
} 

Cette mise à jour automatiquement par Core Data yourGameObject.