protocolo objective delegate delegados delegacion objective-c ios macos cocoa automatic-ref-counting

objective c - objective - propiedad débil para delegado no se puede formar



delegate swift (1)

De acuerdo con la Transición de Apple a ARC Release Notes ,

Actualmente no puede crear referencias débiles a instancias de las siguientes clases:

NSATSTypesetter , NSColorSpace , NSFont , NSMenuView , NSParagraphStyle , NSSimpleHorizontalTypesetter y NSTextView .

Nota: Además, en OS X v10.7, no puede crear referencias débiles a instancias de NSFontManager , NSFontPanel , NSImage , NSTableCellView , NSViewController , NSWindow y NSWindowController . Además, en OS X v10.7, ninguna clase en el marco de AV Foundation admite referencias débiles.

(Nota: uno tiene que ser muy cuidadoso con las referencias débiles no nulas ...)

Tengo una propiedad que se parece a esto:

@property (weak, nonatomic) id<NavigationControllerDelegate> delegate;

Pero cuando ejecuto mi aplicación me sale el siguiente error:

objc[4251]: cannot form weak reference to instance (0x101e0d4b0) of class TabBarController

La única razón por la que puedo obtener de Google para este error es que lo obtiene cuando intenta formar una referencia débil a un objeto que reemplaza retener / release / dealloc, que no soy. Mi TabBarController está heredando de NSViewController.

¿Alguien sabe que podría causar esto? Funciona si uso "asignar", pero obviamente prefiero usar "débil".