J'ai donc obtenu les entités Niveau et Carreau. Level a une relation avec Tile. La tuile a un 'index' de propriété.Puis-je utiliser des variables d'instance avec un objet NSManagedObject?
En ce moment je suis en utilisant ce code pour obtenir le tableau de tuiles de niveau trié:
- (NSArray *)sortedTiles
{
NSMutableArray *sortedTiles = [NSMutableArray arrayWithArray:[self.tiles allObjects]];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"index" ascending:YES];
[sortedTiles sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];
return sortedTiles;
}
Cela fonctionne, mais je veux être en mesure de récupérer une seule tuile avec un certain indice, donc j'écrit cette méthode Level.h:
- (Tile *)tileWithIndex:(NSInteger)index;
La mise en œuvre est assez simple:
- (Tile *)tileWithIndex:(NSInteger)index
{
NSArray *sortedTiles = [self sortedTiles];
Tile *tile = [sortedTiles objectAtIndex:index];
return tile;
}
maintenant, Bien sûr, ce n'est pas la manière la plus efficace de le faire parce que le tableau de tuiles doit être alloué et trié à chaque fois, donc je pensais: si j'ajoute juste une variable d'instance à Level, 'sortedTiles', alors je n'aurai pas pour le reconstruire à chaque fois. Mais Level est une sous-classe de NSManagedObject, alors est-ce possible et/ou sage à faire?
Veuillez formater correctement votre code. –
Aimerait, mais ne peut pas le faire fonctionner. J'utilise 4 espaces avant certaines lignes pour mettre en retrait mais ça ne va pas indenter ... Edit: désolé, totalement mal compris la référence de mise en forme. Fixé. – Rits