4
創建源代碼的字符串對象的最簡單方法是使用Objective-C的@「...」結構:NSConstantString的唯一對象
NSString *temp = @"/tmp/scratch";
需要注意的是,創建一個字符串常量時以這種方式,你應該使用UTF-8字符。這樣的對象是在編譯時創建的,並存在於整個程序的執行過程中。編譯器使這些對象常量在每個模塊的基礎上都是唯一的,並且它們永遠不會被釋放,儘管您可以像其他對象一樣保留和釋放它們。您也可以直接發送消息給一個字符串作爲你做其他任何字符串常量:
BOOL same = [@"comparison" isEqualToString:myString];
這是Creating Strings ObjC文檔中的報價。
我在應用程序A中測試了不同的@「」字符串,也是應用程序A使用的libB。 所有使用string = @「...」模式初始化並具有相同內容的@「」都指向相同的內存地址。
因此,我不明白「per-module basis」的含義,「per-module」是什麼意思?基於庫?應用基於?基於文件?