【问题标题】:Objective C, Extract Class @Properties from ArrayObjective C,从数组中提取类@Properties
【发布时间】:2016-05-28 22:23:39
【问题描述】:

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

在以下代码 sn-p 中,我已将元素分配给我的 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 类的新实例并从中提取详细信息?

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

【问题讨论】:

    标签: objective-c class nsmutablearray


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,谢谢,谢谢。我是如此接近,但又如此遥远。我肯定把它复杂化了。我打算发布我之前的尝试作为不这样做的一种方式,但我无法弄清楚如何阻止 cmets 中的代码。这让我很困惑,我只有 5 分钟的时间来解决它,然后它才让我失望。 :)
    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多