Re: Is @"constantstring" pointer equal to @"constantstring" a guarantee?
Re: Is @"constantstring" pointer equal to @"constantstring" a guarantee?
- Subject: Re: Is @"constantstring" pointer equal to @"constantstring" a guarantee?
- From: "Kyle Sluder" <email@hidden>
- Date: Thu, 27 Mar 2008 22:41:25 -0400
On Thu, Mar 27, 2008 at 9:16 PM, Jens Alfke <email@hidden> wrote:
> The linker coalesces multiple identical string constants into a single
> value in the data segment. However, you can still end up with multiple
> copies if your code was linked in separate pieces and then joined
> together. Prior to Xcode 3.0 that used to happen when using ZeroLink —
> in fact, once or twice I've had my code crash when run with ZeroLink
> because I'd inadvertently used pointer comparison instead of
> isEqualToString: somewhere. Xcode 3.0 doesn't have ZeroLink anymore,
> but the details of how your program gets linked together are not
> something you should be relying on.
But it still makes sense to me that when I'm providing NSString
constants to be used as they are in the case of an NSError's userInfo
dictionary, for example, that pointer comparison is still valid. Of
course I wouldn't do it for places where I expect arbitrarily-provided
strings to be passed to my method, but I typically make my string
constants opaque.
Is this just in general a Bad Idea(TM)?
--Kyle Sluder
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden