top | item 45599053

(no title)

marcianx | 4 months ago

Reference counted pointers can deference an object (via a strong pointer) without checking the reference count. The reference count is accessed only on operations like clone, destruction, and such. That being said, access via a weak pointer does require a reference count check.

discuss

order

fulafel|4 months ago

This sounds different from common refcounting semantics in other languages, is it really so in Swift?

Usually access increases the reference count (to avoid the object getting GC'd while you use it) and weak pointers are the exception where you are prepared for the object reference to suddenly become invalid.

Someone|4 months ago

> Usually access increases the reference count

Taking shared ownership increases the reference count, not access.

marcianx|4 months ago

When you have a strong pointer, you already have a positive ref count. Only once the strong pointer is destructed, is the reference count decremented.