On 22 Apr 2009, at 02:15, Andrew Farmer wrote:

On 21 Apr 09, at 17:53, Wayne Shao wrote:
Let's say that I have a member variable NSString* logFilePath, I do init
in the   initWith.... method as
logFilePath = [[some_other_path stringByAppendingPathComponent:@"log.txt"]
copy];

The question is, if I do not call copy, is it true that logFilePath could be
subject to be GC'ed?

Are you using garbage collection or not?

If you ARE using garbage collection, the copy is unnecessary. So long as the value is reachable through strong references (which logFilePath is, so long as the object itself is reachable), it will not be collected.

If you ARE NOT using garbage collection, you should be retaining this value rather than copying it. See the memory management programming guide [1] for details.

[1]: 
http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/index.html

To be fair, NSString's immutable nature does make -copy perfectly acceptable (and I would say desirable in many cases) as it ends up doing the same as -retain.

Mike.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to