我有一种情况,我创建了一个 NSManagedObjects 的 NSArray,这些 NSManagedObjects 都派生自 CoreData 实体。问题是这个数组中有多个实体,但是数组中的每个实体都有一个我想检索的“名称”属性。
我来自 C++ 背景,如果遇到这个问题,我会创建另一个具有我想使用的属性的类,并让所有子对象都继承自 NSManagedObject 和具有我喜欢的属性的类。不幸的是,我看不到使用 Objective C 的方法,因为它不支持多重继承,而且我无法弄清楚处理像这样的小 OOP 问题的范式。:(
- -背景 - -
我正在处理的用例场景是,我想用来自各种对象类型的各种字符的单元格填充 UITableView。所有的角色都有一个名字,但它们都是唯一的对象类型。现在我可以像这样做一种类型:
- (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;
}
但是,正如你所看到的,当我有不同的类型时,这就会崩溃。我确信有一个更优雅的解决方案来处理这个问题,但是以前使用其他语言的经验阻碍了我(我认为)。希望这不是一个太长的问题。