2012-02-08 21 views
18

tengo una propiedad que tiene este aspecto:débil propiedad de delegado no puede formarse

@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 puede obtener de google para este error es que lo obtiene cuando intenta formar una referencia débil a un objeto que anula retención/liberación/trato, que yo no soy. Mi TabBarController hereda de NSViewController.

¿Alguien sabe lo que podría causar esto? Funciona si uso "assign", pero obviamente prefiero usar "weak".

+0

CocoaFu, "no puede formar débil referencia a la instancia ..." es siempre un error de tiempo de ejecución. –

Respuesta

36

de acuerdo con Transitioning to ARC Release Notes,

You cannot currently create weak references to instances of the following classes:

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

Note: In addition, in OS X v10.7, you cannot create weak references to instances of NSFontManager , NSFontPanel , NSImage , NSTableCellView , NSViewController, NSWindow , and NSWindowController . In addition, in OS X v10.7 no classes in the AV Foundation framework support weak references.

Apple (Nota: hay que tener mucho cuidado con nonzeroing referencias débiles ...)

+0

¡Cosas geniales! Sospeché que había algo diferente con NSViewController basado en mis hallazgos anteriores. Aunque no había visto lo que acaba de pegar. ¡Gracias, eso definitivamente aclara todo! –

Cuestiones relacionadas