__unsafe_unretained
There are some classes that can’t have weak references assigned to them, such as
NSImage
andNSFont
(and others). In OS X 10.7 you can’t have weak references to those, and other classes likeNSWindow
orNSWindowController
(and others), due to legacy or technical details, such as a custom retain and release implementation (Thanks to Mike Ash for the hint as to why some of these classes are off-limits). But there are times you might want to point to them and not create a strong reference. Perhaps it’s to break a retain cycle. You’d use__unsafe_unretained
for those.