Objective C,从数组中提取 Class @Properties

Objective C, Extract Class @Properties from Array

我有一个例程可以解析视频 EDL 并提取事件 #、源开始和结束时间码以及记录开始和结束时间码。此外,它还在寻找具有 VFX 名称的定位器。我的 class "Event" 对每个元素都有 @属性。

在下面的代码片段中,我将元素分配给了我的事件实例 class (*e) 并将其添加到 NSMutableArray (*edl)。

if ([tempLineElements count] >= 4 && [tempLineElements[0] isEqualToString:@"*LOC:"]) {

    NSMutableString *locatorText = [[NSMutableString alloc] init];

    Event *e = [[Event alloc] init];

    e.edlEvent = tempEvent;
    e.srcStart = tempSrcStart;
    e.srcEnd = tempSrcEnd;
    e.recStart = tempRecStart;
    e.recEnd = tempRecEnd;
    e.markerColor = tempColor;
    e.vfxName = tempVFXName;

    //edl is an NSMutableArray

    [edl addObject:e];
    eventCount++;
}

这一切都很顺利,我已经成功地将 edl(MutableArray)用作 TableView 的数据源。太棒了!

但现在的问题是我不知道如何从 MutableArray edl 中提取@properties。该数组是 Event 对象的有序列表。这本质上是一个需要两个索引的二维数组吗?或者我是否需要获取数组中的每个条目并以某种方式填充事件的新实例 class 并从那里提取详细信息?

抱歉新手问题,但我是新手。提前感谢您给我的任何指导。

你有一个 Event 对象的一维数组。查找 属性 在概念上与您在问题中所写的相反。在简单的情况下,您不需要填充新实例,只需获取数组中现有的实例即可。例如:

// Assuming the array has been populated...
Event *e = [edl objectAtIndex:0];
NSLog(@"Name: %@", e.vfxName);

这就是您在显示 table 数据时所做的,尽管通常使用 indexPath.row 而不是 0 作为数组偏移量。