【问题标题】:Is there an equivalent of Delphi TStringList in Cocoa/Objective-C?Cocoa/Objective-C 中是否有相当于 Delphi TStringList 的?
【发布时间】:2013-01-16 14:43:21
【问题描述】:

我目前正在尝试学习 Cocoa/Objective-C 来构建 Mac OS X 软件。我来自 Delphi,在 Delphi 中一个非常有用的元素是 TStringList。我正在寻找 Objective-C 中的等价物...我需要能够访问虚拟列表中的项目(一行)。

例如,在 Delphi 中,我可以调用 Label.Caption := MyStrList[5]; 来显示(作为字符串)列表中的项目。我想在 Cocoa 中做“同样”的事情。

关于信息,我在 Delphi 中使用 TStringList 来管理我的多线程应用程序必须执行的操作列表。

提前致谢!

贝尼

【问题讨论】:

  • TStringList 做了很多事情。它拆分和连接多行文本块。它就像一个 INI 文件。它就像一个关联数组。它执行文件和流 I/O。它搜索和排序。它会在更改时通知您。它可以有后代。此外,它恰好存储了一个字符串列表。您的问题的主体似乎要求仅存储字符串列表的内容,这与 TStringList 的“等效”完全不同。请edit你的问题澄清你真正想要什么。 (而且 TStringList 不是一个“虚拟”列表;它确实是一个列表。)
  • 嗨,罗伯。谢谢你的评论。通过虚拟列表,我的意思是“不可见”。我想走在正确的轨道上,Aknew 的回复帮助了我。现在我将尝试复制一些基本的 StringList 函数,例如添加项目 (...)。
  • 作为一个学习objectiveC的delphi人,我想要一个“TStringList.LoadFromFile”,例如,发现从文件中加载整个字符串的简单NSString会更常见(如下也许通过第二次操作将其逐行拆分)。如果我发现我反复编写多行或复杂的样板代码,我会将其重构为 NSArray 或 NSString 上的实用程序“类别”。
  • Warren,感谢您作为 Delphi 用户的回复 :) 特别是,我使用 NSString 从文件(读/写)进行“基本”字符串操作;和 NSArray 用于使用字符串列表作为项目。在我看来,Objective-C 的逻辑并不是那么简单(从 Delphi 的角度来看)。我的意思是,在 Delphi 中,一个函数被称为function,一个过程procedure,代码以begin 开始,以end 结束,... 过渡到Objective-C 并不容易(无论如何在我的案例中) :)

标签: objective-c xcode cocoa delphi tstringlist


【解决方案1】:

它的 NSArray(或 NSMutableArray)中包含 NSString 对象。你可以写类似

NSArray *array=[NSArray arrayWithObjects:@"string1",@"string2",@"string3",nil];
label.text=[array objectAtIndex:1];

【讨论】:

  • 啊,好的!我想过,但这个解决方案似乎是一个修补工作......所以我们必须手动完成 Delphi“在一条线上”所做的事情。现在我明白我的问题可能与stackoverflow.com/questions/3295527/… 重复。感谢您的帮助:)
  • 所以我们必须手动完成 Delphi 的“一行”操作 我不明白你,Delphi 在一行中做了什么?从文件加载?
  • 顺便说一下,它不需要将文件加载到 NSData 并将其转换为 NSString 就像参考一样,NSString 可以使用 + (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error 自己加载文件。
  • 好的,感谢您的意见。关于“一行”,我的意思是我们必须混合使用 NSArray 和 NSString。没有准备好本机虚拟列表。我现在会做一些测试。再次感谢:)
  • 完美!这是我刚刚用于简单测试的代码:pastebin.com/nradADdX
猜你喜欢
  • 2010-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 2021-10-09
  • 1970-01-01
相关资源
最近更新 更多