gpt4 book ai didi

ios - 神秘的核心数据行为在第二次获取时检索空对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:14 24 4
gpt4 key购买 nike

我正在尝试将核心数据中的对象列表显示到 UITableViewController 中。这是这个 UITableViewController 的 viewWillAppear:

- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];

self.landmarks = [[TSDataManager sharedInstance] fetchArrayFromDBWithEntity:@"Landmark" forKey:nil withPredicate:nil];
[self.tableView reloadData];
}

这里是 fetchArrayFromDBWithEntity:forKey:withPredicate: 实现:

- (NSMutableArray*)fetchArrayFromDBWithEntity:(NSString*)entityName forKey:(NSString*)keyName withPredicate:(NSPredicate*)predicate {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];

if(keyName != nil){
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:keyName ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
}

if (predicate != nil){
[request setPredicate:predicate];
}

NSError *error = nil;
NSMutableArray *mutableFetchResults = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
NSLog(@"%@", error);
}
return mutableFetchResults;
}

当表格第一次出现时,一切都正确显示,我有 4 个对象从数据库返回,每个单元格中的标题都正确显示。

但是每当我转到另一个 View 并返回时,表中有四个对象,但是它们的“title”属性的值为 nil!

这是我的 Landmark 类的代码:

@interface Landmark : NSManagedObject
@property (nonatomic, strong) NSString * title;
@end

@implementation Landmark
@dynamic title;
@end

这是我的表格单元格的构造方式,以防它来自那里:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"LandmarkCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

Landmark *landmark = (Landmark *) self.landmarks[(NSUInteger) indexPath.row];
cell.textLabel.text = landmark.title;

return cell;
}

显然我在这里做错了什么,但我真的不知道是什么。

最佳答案

原来问题出在我将Core Data作为单例实现。我将其替换为 NLCoreData ( https://github.com/jksk/NLCoreData),现在一切正常。

关于ios - 神秘的核心数据行为在第二次获取时检索空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14656965/

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