【发布时间】: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