Ваш пример неудачный - если вы используете строковый литерал @ "Foo" в двух местах кода, компилятор даст им один и тот же адрес (т.е. он использует один и тот же статический экземпляр строки). Пример:
heimdall: Документы leeg $ cat foostrings.m
#import <Foundation/Foundation.h>
int main(int argc, char **argv)
{
NSString *string1 = @"Foo";
NSString *string2 = @"Foo";
printf("string1: %p\nstring2: %p\n", string1, string2);
return 0;
}
heimdall: документы leeg $ ./foostrings
string1: 0x100001048
строка2: 0x100001048