views:

165

answers:

1
  NSString *myString = @"sample string";
  NSString *newString = [myString copy];

If I set a breakpoint after these two lines, the pointer for myString is the same as the pointer for newString.

WTF? Isn't NSString copy supposed to return a pointer to a new object? Or am I missing something fundamental about how copy is supposed to work?

+6  A: 

Since NSString is not mutable it might just internally increase ref count and be done with it.

When you release one of those NSStrings it might just decrement ref count - standard memory management.

Do you see any issues with that?

stefanB