在源代码中创建字符串对象的最简单方法是使用Objective-C @“...”结构:
NSString *temp = @"/tmp/scratch";
请注意,以这种方式创建字符串常量时,应使用UTF-8字符。这样的对象是在编译时创建的,并且在整个程序的执行过程中都存在。编译器使这些对象常量在每个模块的基础上是唯一的,并且它们永远不会被释放,尽管您可以像执行任何其他对象一样保留和释放它们。您还可以像执行任何其他字符串一样将消息直接发送到字符串常量:
BOOL same = [@"comparison" isEqualToString:myString];
这是ObjC文档中来自Creating Strings的引用。
我在applicationA中测试了不同的@“”字符串,也是applicationA使用的libB。 使用string = @“...”模式初始化并具有相同内容的所有@“”都指向相同的内存地址。
因此,我不理解“每个模块”的含义,“每个模块”是什么意思?基于lib?应用基于?基于文件?
答案 0 :(得分:0)
出于Mac OS X和iOS开发的目的,模块相当于单个.m / .mm / .c / .cpp文件。