gpt4 book ai didi

ios - Keypath not found in entity error 但我可以插入到数据存储中

转载 作者:行者123 更新时间:2023-11-29 11:05:25 26 4
gpt4 key购买 nike

我收到这个错误:

core data data store missing getting error:'NSInvalidArgumentException', reason: keypath flowData.flowAmount not found in entity <NSSQLEntity FlowData id=1>

当尝试将数据从核心数据存储加载到 TableView 时。

在我更改数据模型并恢复版本后从模拟器中删除应用程序后,下次运行应用程序时将重新创建 sqlite 数据库。

我可以插入数据库。此转储显示我刚刚输入的记录:

INSERT INTO "ZFLOWDATA" 
VALUES(1,1,1,NULL,8.0,376884478.384176,376884471.83175,8.0);

但是,当我尝试从数据存储中读取时,出现上述错误。

这是我尝试加载数据时的相关代码:

- (void)viewDidLoad
{
[super viewDidLoad];
NSError *error;
if (![[self fetchedResultsController] performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
self.title = @"Flow Data Items";
}

- (NSFetchedResultsController *)fetchedResultsController {



jhsAppDelegate *appDelegate = (jhsAppDelegate *)[[UIApplication sharedApplication]delegate];

managedObjectContext = [appDelegate managedObjectContext];



if (fetchedResultsController != nil) {
return fetchedResultsController;

}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription
entityForName:@"FlowData" inManagedObjectContext:managedObjectContext];

[fetchRequest setEntity:entity];

NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"FlowData.flowAmount"
ascending:NO];

[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext sectionNameKeyPath:nil
cacheName:@"Root"];

self.fetchedResultsController = theFetchedResultsController;
self.fetchedResultsController.delegate = self;
return fetchedResultsController;
}

这是我的数据模型:

enter image description here

最后,这是我的实体数据模型类代码:

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@interface FlowData : NSManagedObject

@property (nonatomic, retain) NSNumber * flowAmount;
@property (nonatomic, retain) NSDate * flowEnteredDateTime;
@property (nonatomic, retain) NSDate * flowOccurrenceDateTime;
@property (nonatomic, retain) NSNumber * flowScheduledFrequencyMinutes;
@property (nonatomic, retain) NSNumber * flowUrgency;

@end

这一定与我尝试读取数据的方式有关,因为我能够在另一个 View Controller 上插入一行,因为我相信实体上确实存在 FlowData.flowAmount被插入到实体中。

有什么想法吗? .h 文件中列出属性的顺序是否必须与实际数据模型中的顺序相匹配?我的数据类型匹配吗?

最佳答案

您的 sortDescriptor 的键应该只是 flowAmount
无需在实体名称前加上。

PS:类中属性的顺序无关紧要。您的数据类型匹配(floatNSNumber)。

关于ios - Keypath not found in entity error 但我可以插入到数据存储中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13862892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com