Dlaczego NSString stringWithString zwraca wskaźnik do skopiowanego ciągu?

Próbuję skopiowaćNSString wartość zNSMutableArray w nową zmienną.NSString stringWithString wracaNSString z tym samym adresem pamięci co obiekt w mojej tablicy. Czemu?

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        NSMutableArray *arr = [NSMutableArray arrayWithObject:@"first"];

        NSLog(@"string is '%@' %p", [arr objectAtIndex:0], [arr objectAtIndex:0]);

        // copy the string
        NSString *copy = [NSString stringWithString:[arr objectAtIndex:0]];
        NSLog(@"string is '%@' %p", copy, copy);

    }
    return 0;
}

questionAnswers(2)

yourAnswerToTheQuestion