私はCoreDataにかなり慣れておらず、Objective-cです。私はCoreDataのドキュメントを上下に移動してきましたが、ここで何が間違っているのかわかりません。
実行時に、NSManagedObject"ReportItem"をNSManagedObject"RoomItem"のNSMutableSet"reports"に追加すると、次のエラーが発生します。NSUnknownKeyException', reason: '[<RoomItem 0x747c850> valueForUndefinedKey:]: the entity RoomItem is not key value coding-compliant for the key "reports"
エラーは、以下の「creatReportForRoom」メソッドの「RoomList」ストアクラス内で発生しています。このメソッドは、関連データが入力されているUIViewControllerのviewWillDisapearで呼び出されます。
- (ReportItem *)creatReportForRoom:(RoomItem *)currentRoom Report:(ReportItem *)report
{
NSDate *dateCreated = [NSDate date];
ReportItem *detailItem = [NSEntityDescription insertNewObjectForEntityForName:@"ReportItem" inManagedObjectContext:context];
[detailItem setDateReportCreated:dateCreated];
NSMutableSet *reports = [currentRoom mutableSetValueForKey:@"reports"];
[reports addObject:detailItem]; //error is occurring at this line
[allReports addObject:detailItem];
return detailItem;
}
「RoomItem」NSManagedObjectファイルは次のとおりです。
RoomItem.h
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface RoomItem : NSManagedObject
@property (nonatomic, strong) NSString *building;
@property (nonatomic, strong) NSString *room;
@property (nonatomic, retain) NSString *imageKey;
@property (nonatomic, retain) UIImage *buildingImage;
@property (nonatomic, strong) UIImage *buildingThumbnail;
@property (nonatomic, strong) NSData *buildingThumbnailData;
@property (nonatomic) double objectIndex;
@property (nonatomic, strong) NSDate *dateCreated;
@property (nonatomic, retain) NSMutableSet *reports;
@end
RoomItem.m
#import "RoomItem.h"
@implementation RoomItem
@dynamic building, buildingThumbnail, buildingThumbnailData, objectIndex, room, dateCreated, imageKey, buildingImage, reports;
@end
ここで何か間違ったことをしている場合に備えて、RoomItemが作成および保存された「createItem」メソッドを含めました。
- (RoomItem *)createItem
{
double order;
//create new roomItem
//tracks what number item it's creating
if ([allItems count] == 0) {
order = 1.0;
}
else
{
order = [[allItems lastObject] objectIndex] + 1;
}
NSLog(@"Adding after %d items, order = %.2f", [allItems count], order);
RoomItem *detailItem = [NSEntityDescription insertNewObjectForEntityForName:@"RoomItem"
inManagedObjectContext:context];
[detailItem setObjectIndex:order];
[detailItem setDateCreated:[NSDate date]];
[allItems addObject:detailItem];
return detailItem;
}
関係のあるデータモデル:
関係図:
この問題を修正するためのアドバイスをいただければ幸いです。私が含めなかったことが役立つかもしれない何かがあれば私に知らせてください。
ありがとう!