所以我得到了實體Level和Tile。關卡與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;
}
中,當然這並不是最有效的方法,因爲tile數組必須每次分配和排序,所以我在想:如果我只是將一個實例變量添加到Level,'sortedTiles',那麼我不會有每次重建它。但是Level是NSManagedObject的子類,所以這是可能的和/或明智的做法?
請正確格式化您的代碼。 – 2010-09-29 23:49:00
很想去,但不能得到它的工作。我在一些行之前使用4個空格來縮進,但它不會縮進...編輯:對不起,完全誤解了格式引用。固定。 – Rits 2010-09-30 00:10:09