【问题标题】:Comparing NSString to NSTextView Range prior to Appending在追加之前将 NSString 与 NSTextView 范围进行比较
【发布时间】:2014-01-28 20:45:23
【问题描述】:

在 Objective-C 中编码,我将文本附加到我的代码中名为 subCap 的 NSTextView 对象,如下所示:

[[[_subCAP textStorage] mutableString]appendString:[NSString stringWithFormat:@"%@", subcapLine]];

subcapLine 将有两个时间码值,例如:“01:00:00:00 01:00:01:00”,由一个空格分隔,然后是换行符 (\n),然后是类似“ONC314_001_001”的字符串后跟两个换行符 (\n\n)。

最终结果将创建一个类似于以下内容的列表:

01:00:00:00 01:00:01:00
ONC314_001_001

01:00:01:00 01:00:02:00
ONC314_001_002

01:00:02:00 01:00:03:00
ONC314_001_003

等等等等等等。

它是一个子字幕文件,用于在视频文件中的适当时间放置文本(ONC314 行),如时间码所示。

但是,我已经确定存在一组奇怪的情况,其中时间码对可能与前一个时间码对相同,如果发生这种情况,我想跳过附加该行。

所以,我的问题是,鉴于时间码总是每个 11 个字符,由空格分隔,任何人都可以想出一种方法,我可以轻松地获取之前的 TC 对并将其与 subcapLine 中的当前对进行比较我'我准备追加?问题是子标题的文本可能是随机长度。在我的示例中,它们是相同的,但并非总是如此。

如果我需要在编译我的 subcapLine 之前进行检查,我也可以这样做,但我只是认为使用某种范围从最后写入的行中获取前一对 TC 可能更巧妙NSTextView 对象并与我要附加的行中的 TC 进行比较(再次,使用范围?)?

非常感谢您的想法和建议。

克里斯·康利

【问题讨论】:

    标签: objective-c nstextview nsrange


    【解决方案1】:

    当您添加时间码时,在您添加时间码之前存储文本字段字符串的长度,这样您将获得您要添加的时间码的偏移量。

    然后在添加新时间码之前,您可以简单地使用之前存储的偏移量来提取子字符串并进行字符串比较,看看时间码是否相同。

    这应该允许您始终对前一个时间码有一个偏移量,而不管字幕的长度如何。

    【讨论】:

    • 啊,现在这听起来像是一种非常常识的方法。我只是知道有人会建议我睡眠不足的头脑没有想出来。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多