すべて CoreData エンティティから派生した NSManagedObjects の NSArray を作成した状況があります。問題は、この配列に複数のエンティティがあることですが、配列内の各エンティティには、取得したい「名前」プロパティがあります。
私は C++ のバックグラウンドを持っており、この問題に直面した場合は、使用したいプロパティを持つ別のクラスを作成し、すべての子オブジェクトを NSManagedObject から継承し、そのクラスに好きなプロパティを持たせます。残念ながら、Objective C は多重継承をサポートしておらず、このような小さな OOP 問題を処理するためのパラダイムを理解できないため、Objective C でそれを行う方法がわかりません。:(
- -バックグラウンド - -
私が扱っているユースケースのシナリオは、さまざまなオブジェクトタイプのさまざまな文字のセルで UITableView を埋めたいということです。すべてのキャラクターには名前がありますが、それらはすべて固有のオブジェクト タイプです。今、私は次のように1つのタイプをうまく実行できます:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CharNameCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
CharacterWizard *wizards = (CharacterWizard*)[self.characters objectAtIndex:indexPath.row];
cell.textLabel.text = wizards.name;
return cell;
}
しかし、ご覧のとおり、さまざまなタイプがあると、これはうまくいきません。この問題に対処するためのより洗練された解決策があると確信していますが、他の言語での以前の経験がここで邪魔になっていると思います (と思います)。