I have a ARC enabled Mac project with a non-ARC enabled framework, all compiles fine but once run the non-ARC framework displays a form, however when you click a button, a error is thrown like…
2012-11-10 23:32:11.191 TestApp[20691:303] -[__NSCFType next:]: unrecognized selector sent to instance 0x101c13070
2012-11-10 23:32:11.193 TestApp[20691:303] -[__NSCFType next:]: unrecognized selector sent to instance 0x101c13070
2012-11-10 23:32:11.198 TestApp20691:303 doesNotRecognizeSelector:] + 186
3 CoreFoundation 0x00007fff8e63a5ce forwarding + 414
4 CoreFoundation 0x00007fff8e63a3b8 _CF_forwarding_prep_0 + 232
5 AppKit 0x00007fff8ff78a59 -[NSApplication sendAction:to:from:] + 342
6 AppKit 0x00007fff8ff788b7 -[NSControl sendAction:to:] + 85
7 AppKit 0x00007fff8ff787eb -[NSCell _sendActionFrom:] + 138
8 AppKit 0x00007fff8ff76cd3 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 1855
9 AppKit 0x00007fff8ff76521 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 504
10 AppKit 0x00007fff8ff75c9c -[NSControl mouseDown:] + 820
11 AppKit 0x00007fff8ff6d60e -[NSWindow sendEvent:] + 6853
12 AppKit 0x00007fff8ff69744 -[NSApplication sendEvent:] + 5761
13 AppKit 0x00007fff8fe7f2fa -[NSApplication run] + 636
14 AppKit 0x00007fff8fe23cb6 NSApplicationMain + 869
15 AppSim 0x00000001000026f2 main + 34
16 libdyld.dylib 0x00007fff97c6c7e1 start + 0
17 ??? 0x0000000000000003 0x0 + 3
Converting the main project to non-ARC the problem goes… what is causing the problem, and how do I get around it?
I rather not convert my existing project to use non-ARC…
Steps to reproduce problem…
Download “Sample Project for OS X Lion, ~250 KB” from
https://github.com/eternalstorms/ESSVideoShare-for-OS-X-Lion
Convert the main project to ARC, point the line starting with … [yt uploadVideoAtURL:[NSURL fileURLWithPath to any mov file you have, then run.
Clicking cancel or sign-in will cause the error…
Your sample code has a memory leak:
ytis never released.When you plug that leak, either by adding a
releaseor by converting to ARC, you will get the crash because theESSYouTubeandESSYouTubeWindowControllerinstances have been deallocated while the UI is still on screen.The sample code needs to be fixed, and
ESSYouTubeshould either retain itself as long its UI is on screen, or it should tear down its UI upon deallocation.