On Feb 22, 2008, at 5:17 PM, Charles Steinman wrote:


--- Jack Repenning <[EMAIL PROTECTED]> wrote:

On Feb 22, 2008, at 1:13 PM, Keith Duncan wrote:
This would be a problem should the code base ever
be compiled with
GC support.

Interesting point, that retain/release supports a
lifecycle model
(free-floating, self-managed object) that can't be
supported by GC....

I think it can. You'd just need to disable collection
on the object and have it re-enable collection for
itself when it decided it was no longer needed (this
is essentially what CFRetain and CFRelease do under
GC).

Where is this magic documented? The documentation for CFRetain doesn't mention this usage. The way I have seen documented is to use NSGarbageCollector's disableCollectorForPointer: and enableCollectorForPointer: methods. So you'd say:

[[NSGarbageCollector defaultCollector] disableCollectorForPointer:ui];

to cause ui to be ignored by the GC, and then

[[NSGarbageCollector defaultCollector] enableCollectorForPointer:ui];

when you want the GC to take over again. You're saying that CFRetain and CFRelease do the same thing, even for any Cocoa object?
_______________________________________________

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