内部に UITableView を持つ UIViewController があります。ビューには他のものがあるため、UIViewController は UITableViewController ではありません。コンセントを接続しないと、空のテーブルが他のものと一緒にビューに表示され、エラーは発生しません。UIViewController から UITableView にアウトレットを接続すると、次のエラーが発生します。
「[<UIViewController 0x748a420> setValue:forUndefinedKey:]: このクラスは、キー tableStories のキー値コーディングに準拠していません。」
データソースも接続し、アウトレットを UITableView から UIViewController に委任すると、同じエラーが発生します。ビューコントローラーの .h は次のとおりです
#import <UIKit/UIKit.h>
@interface IntroViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, weak) IBOutlet UITableView *tableStories;
@property (nonatomic, strong) NSManagedObjectContext* managedObjectContext;
@property (nonatomic, strong) NSArray *stories;
そして、ここに.mがあります
@implementation IntroViewController
@synthesize tableStories;
@synthesize stories;
@synthesize managedObjectContext;
- (void)viewDidLoad
{
[super viewDidLoad];
tableStories.delegate = self;
tableStories.dataSource = self;
managedObjectContext = ((ReadMeAppDelegate *)[UIApplication sharedApplication].delegate).managedObjectContext;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"RMStory" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSError *error;
self.stories = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [stories count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
RMStory *thisStory = [stories objectAtIndex:indexPath.row];
cell.textLabel.text = thisStory.title;
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@", thisStory.author];
return cell;
}
Core Data コマンドに関係している可能性がありますが、スタックに記載されている他のソリューションを試してこのエラーを回避しましたが、これまでのところ何も機能しません。:-/
また、ストーリーボードを別のアプリからインポートしたので、それが問題を引き起こしている可能性があります。