Итак, я получил сущности уровня и плитки. У уровня есть много отношений с Tile. Плитка имеет индекс собственности.Могу ли я использовать переменные экземпляра с NSManagedObject?
Сейчас я использую этот код, чтобы получить плитки массива уровня отсортированный:
- (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;
}
Это работает, но я хочу, чтобы иметь возможность получить один Плитку с определенным индексом, так что я написал этот метод в Level.h:
- (Tile *)tileWithIndex:(NSInteger)index;
реализация довольно проста:
- (Tile *)tileWithIndex:(NSInteger)index
{
NSArray *sortedTiles = [self sortedTiles];
Tile *tile = [sortedTiles objectAtIndex:index];
return tile;
}
Теперь, Конечно, это не самый эффективный способ сделать это, потому что массив плиток нужно распределять и сортировать каждый раз, поэтому я думал: если я просто добавлю переменную экземпляра в Level, 'sortedTiles', тогда у меня не будет перестраивать его каждый раз. Но Level является подклассом NSManagedObject, так и возможно ли это и/или разумно?
Пожалуйста, правильно отформатируйте свой код. –
Хотел бы, но не мог заставить его работать. Я использую 4 пробела, прежде чем некоторые строки будут отступать, но это просто не будет отступать ... Редактировать: извините, полностью неправильно поняли ссылку на форматирование. Исправлена. – Rits