gpt4 book ai didi

objective-c - 将核心数据值放入数组中

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

我需要将使用 Fetch Request 从核心数据图中检索到的值放入数组中,但不完全确定如何执行此操作。

我使用以下命令来执行获取:

    NSString *entityName = @"Project"; // Put your entity name here
NSLog(@"Setting up a Fetched Results Controller for the Entity named %@", entityName);

// 2 - Request that Entity
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:entityName];

// 3 - Filter it if you want
request.predicate = [NSPredicate predicateWithFormat:@"belongsToProject = %@", _selectedProject];

// 4 - Sort it if you want
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"dateTaken"
ascending:YES
selector:@selector(localizedCaseInsensitiveCompare:)]];
// 5 - Fetch it
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];


[self performFetch];

如您所见,我正在使用 NSPredicate 过滤返回的值。

如何将这些值放入数组中,并且在实体进入数组后还能够为实体选择单独的属性,例如project.description 或project.name?

感谢 Eimantas,我已经将对象存储在数组中,但是我仍然需要做两件事:

  1. 循环数组并将数据输出到一些 HTML 中
  2. 从数组中单独选择属性,例如项目描述。

我使用以下 for 循环来执行第一个操作:

for (int i=0; i < [projectListArray count]; i++) 
{
NSString *tmp = (NSString *)[projectListArray objectAtIndex:i];
}

但是,这会返回错误:

-[Project length]: unrecognized selector sent to instance 0x1b9f20
2012-03-28 10:48:35.160 Project App[3973:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Project length]: unrecognized selector sent to instance 0x1b9f20'

看来我可能不会增加?

最佳答案

[self.fetchedResultsController fetchedObjects] 返回已获取对象的数组。

更新

最好使用快速枚举,而不是 for 循环:

for (Project *project in projectListArray) {
NSString *projectDescription = [project valueForKey:@"description"];
}

您收到异常是因为您将一个对象强制转换为 NSString,而它是指向(我推测)Project 托管对象的指针。

关于objective-c - 将核心数据值放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9904790/

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