0

次のコードがあります。

if ([[frc objectAtIndexPath:indexPath] isKindOfClass:[Author class]])
    return ((Author *)[frc objectAtIndexPath:indexPath]).name;

return ((Location *)[frc objectAtIndexPath:indexPath]).name;

frc - NSFetchedResultsController.

Authorオブジェクトとの同一フィールドのデータを取得するにはどうすればよいLocationですか? クラスは Author と Location の存在を知ってはなりません。

私もそうしようとしました:

id <NSFetchedResultsSectionInfo> sectionInfo = m_arts.sections[indexPath.section];
id object = sectionInfo.objects[indexPath.row];
NSLog(@"%@", object[@"name"]); // Crash!!!
4

1 に答える 1

2

1 つのアプローチは、次のように作成LocationしてAuthorサブクラス化することNamedObjectです。

@interface NamedObject : NSObject
@property (strong) NSString *name;
@end

@interface Author : NamedObject
// ...
@end

@interface Location : NamedObject
// ...
@end

そして次のようなもの:

NamedObject *object = (NamedObject *) sectionInfo.objects[indexPath.row];
NSLog (@"%@", object.name);

プロパティにアクセスしnameます。

于 2013-08-22T13:59:23.503 に答える