目标C,从Array中提取类@Properties

时间:2016-05-28 22:23:40

标签: objective-c class nsmutablearray

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

在下面的代码片段中,我已将元素分配给我的Event类(* 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对象的有序列表。这本质上是一个需要两个索引的二维数组吗?或者我是否需要获取数组中的每个条目,并以某种方式填充我的Event类的新实例并从那里提取详细信息?

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

1 个答案:

答案 0 :(得分:1)

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

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

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