【问题标题】: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, ...}吗?

标签: ios uitableview core-data nsarray


【解决方案1】:

我会换行

id object = . . .

NSManagedObject *object = . . .

然后

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

【讨论】:

    猜你喜欢
    • 2020-08-07
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    相关资源
    最近更新 更多