获取数组中对象的值

Posted

技术标签:

【中文标题】获取数组中对象的值【英文标题】:Getting the value of an object in an array 【发布时间】:2014-01-30 21:44:15 【问题描述】:

感谢一位更专业的用户,我已经实现了一种在表格视图部分中对核心数据对象进行排序的方法。部分内部的排序方法与表格视图的排序方法不同。最新的是由 NSFetchedResultsController 完成的。但现在我不知道如何从排序的 NSArray 中获取值。 这是对部分内的核心数据对象进行排序的方法:

- (NSArray*)sortedSectionForIndex:(NSInteger)index

    NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"priority" ascending:YES];
    id section = [[self fetchedResultsController] sections][index];
    NSLog(@"INDEX********* = %ld", (long)index);
    NSArray *objects = [section objects];
    NSArray *sorted = [objects sortedArrayUsingDescriptors:@[sort]];
    return sorted;

这是添加到 cellForRowAtIndexPat 方法中以从 sortedSectionForIndex 方法中获取 NSArray 的代码:

 NSArray *sorted = [self sortedSectionForIndex:[indexPath section]];
    id object = [sorted objectAtIndex:[indexPath row]];

    NSLog(@"OBJECTV= %@",object);

现在,我需要知道如何将数组中的值显示为cell.textlabel

第二个问题是,我不知道从数组中获取核心数据对象是否会改变其余方法处理它们的方式。我的意思是,在实现这种排序方法之前,当用户单击一行时,会显示来自所选对象的详细视图。现在从数组而不是从 NSFetchedResultsController 中获取对象,我不确定它是否会像以前一样继续工作。

【问题讨论】:

您已经获得了价值——您使用 objectAtIndex 来获得它! (不过,我怀疑您的意思是您不知道如何将值放入标签中。) 没有@HotLicks,该数组有几个键(名称、日期、优先级等)我需要的是获取名称键的值以便在 cell.textlabel 上显示它。 那么,求名字键。 NSLog object 看看它是什么。是不是里面有“name”元素的字典? 如果你看看我的问题,NSLog 对象已经完成了。是的,有一个“名称”元素。 那么 NSLog 到底长什么样子。是 name = "some name", number = 27, ...吗? 【参考方案1】:

我会换行

id object = . . .

NSManagedObject *object = . . .

然后

cell.textLabel = [object valueForKey:@"todoName"];

【讨论】:

以上是关于获取数组中对象的值的主要内容,如果未能解决你的问题,请参考以下文章

如何在mongodb的对象数组中获取指定字段的值

如何从包含数组的对象数组中获取不同的值

获取数组中对象的值

如何获取从 Knex 返回的值(数组中的对象,即数组中的对象)

如何从自定义模型对象数组中获取特定键的值

如何从嵌套的对象数组中获取每个父级的值