Am 23.04.2008 um 00:25 schrieb Rick Mann:

I wrote a routine that creates a CFStringRef from some USB calls. I use it like this:

        NSString* s = (NSString*) createStringDescriptor(dev, stringIndex);
        [mSerialNumberDisplay setStringValue: [s lowercaseString]];
        [s release];

Two main questions: am I right to release the bridged NSString* s? and, what happens in -lowercaseString? How does that get released?


Calling release on a CFString follows the same rules as calling it on an NSString*, and is equivalent to calling CFRelease(). Be careful, though, if you get a CFString or OSString from IOKit ... someone there apparently wasn't told about the rules in the rest of CoreFoundation... they don't follow the Create/Copy naming scheme consistently, and instead have weird phrases in the docs about "consuming a refcount" and things like that.

But apart from that, the rules in the CoreFoundation docs apply, so assuming you're using a CFStringCreateXXX call, yes, you should release this string.

Cheers,
-- Uli Kusterer
"The Witnesses of TeachText are everywhere..."
http://www.zathras.de





_______________________________________________

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 [EMAIL PROTECTED]

Reply via email to