4

在源代码中创建字符串对象的最简单方法是使用 Objective-C 的 @"..." 构造:

NSString *temp = @"/tmp/scratch";

请注意,以这种方式创建字符串常量时,您应该使用 UTF-8 字符。这样的对象是在编译时创建的,并且存在于程序的整个执行过程中。编译器使此类对象常量在每个模块的基础上都是唯一的,并且它们永远不会被释放,尽管您可以像处理任何其他对象一样保留和释放它们。您也可以像执行任何其他字符串一样将消息直接发送到字符串常量:

BOOL same = [@"comparison" isEqualToString:myString];

这是在 ObjC 文档中创建字符串的引用。

我在 applicationA 中测试了不同的 @"" 字符串,以及 applicationA 使用的 libB。所有使用 string=@"..." 模式初始化且内容相同的@""都指向相同的内存地址。

因此,我不明白“每模块基础”的含义,“每模块”是什么意思?基于库?基于应用程序?基于文件?

4

1 回答 1

0

对于 Mac OS X 和 iOS 开发而言,一个模块相当于一个 .m/.mm/.c/.cpp 文件。

于 2012-06-16T13:29:04.947 回答