When used in non-arc and arc environmentsProgramCrash.
1 // Use-fno-objc to compile the current class 2 3 Needle _ = [[Myview alloc] init]; 4 5 Needlelayer = [Calayer layer]; 6 Needlelayer. Delegate = Self. Needle; 7 8 9 -( Void ) Dealloc 10 { 11 [Needle _ release]; 12 [Needlelayer release]; 13 [Super dealloc]; // Crash 14 } 15
1-(Void) Drawlayer: (calayer *) layer incontext: (cgcontextref) Context
He lightest-Wight solution wocould be to create a small helper class in the file as the uiview that's using the calayer:
In myview. h
@ InterfaceMylayerdelegate:Nsobject...@ End
In myview. m
@ ImplementationMylayerdelegate-(Void)Drawlayer:(Calayer*)Layer incontext:(Cgcontextref)CTX{...}@ End
Just place those at the top of your file, immediately below the # import ctives ves. that way it feels more like using a "private class" to handle the drawing (although it isn' t -- the delegate class can be instantiated by any code that imports the header ).