Oh! I did actually. The method I posted belongs to an ObjC object which is wrapped by a C++ object. That C++ object is a singleton (static).
How is this going to affect ARC and why it didn't down-right crash a week ago before I upgraded Xcode? Thanks, Beinan On Wed, Oct 22, 2014 at 7:00 PM, Kevin Meaney <k...@yvs.eu.com> wrote: > Your not creating a static C++ object anywhere are you? One that creates > the dictionary before main gets called by any chance? > > Kevin > > Sent from my iPhone > > > On 22 Oct 2014, at 22:45, Beinan Li <li.bei...@gmail.com> wrote: > > > > Note, the initial crashing function is merely translating a C++ enum to > the > > AVFoundation builtin constants. > > > > Thanks, > > Beinan > > > > > >> On Wed, Oct 22, 2014 at 5:45 PM, Beinan Li <li.bei...@gmail.com> wrote: > >> > >> It is quite unpredictable. > >> At first it crashes at a dictionary creation line in a .mm > implementation > >> like this: > >> > >> - (NSString*) getAVAudioSessionMode:(myAudioSessionMode)modeKey { > >> NSDictionary* modeDict = @{ // Here it crashes > >> @(myAudioSessionModeDefault): AVAudioSessionModeDefault, > >> @(myAudioSessionModeVoiceChat): AVAudioSessionModeVoiceChat, > >> @(myAudioSessionModeGameChat): AVAudioSessionModeGameChat, > >> @(myAudioSessionModeVideoRecording): AVAudioSessionModeVideoRecording, > >> @(myAudioSessionModeMeasurement): AVAudioSessionModeMeasurement, > >> @(myAudioSessionModeMoviePlayback): AVAudioSessionModeMoviePlayback, > >> @(myAudioSessionModeVideoChat): AVAudioSessionModeVideoChat > >> }; > >> NSString* mode = [modeDict objectForKey:@ > >> (mySettings.audioSession.eMode)]; > >> return mode; > >> } > >> > >> The backtrace gives me: > >> > >> * thread #1: tid = 0x2403, 0x0013148c MyDemo`-[MyImp > >> getAVAudioSessionMode:](self=0x1e839a80, _cmd=0x002d3077, > >> modeKey=myAudioSessionModeDefault) + 676 at MyImp.mm:78, queue = > >> 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, > address=0x0) > >> * frame #0: > >> 0x0013148c MyDemo -[MyImp getAVAudioSessionMode:](self=0x1e839a80, > >> _cmd=0x002d3077, modeKey=myAudioSessionModeDefault) + 676 at MyImp.mm:78 > >> > >> Then if I remove this dictionary all together and do it like this: > >> > >> - (NSString*) getAVAudioSessionMode:(myAudioSessionMode)modeKey { > >> return AVAudioSessionModeDefault; > >> } > >> > >> Then I get a crash right in the main.mm: > >> > >> int retVal = UIApplicationMain(argc, argv, nil, @"MyDemoAppDelegate"); > >> > >> backtrace: > >> > >> * thread #1: tid = 0x2403, 0x3c4df350 > >> libsystem_kernel.dylib`__pthread_kill + 8, queue = > 'com.apple.main-thread', > >> stop reason = signal SIGABRT > >> frame #0: 0x3c4df350 libsystem_kernel.dylib`__pthread_kill + 8 > >> frame #1: 0x3c456122 libsystem_c.dylib`pthread_kill + 58 > >> frame #2: 0x3c492972 libsystem_c.dylib`abort + 94 > >> frame #3: 0x3ba30d4e libc++abi.dylib`abort_message + 74 > >> frame #4: 0x3ba2dff8 libc++abi.dylib`default_terminate() + 24 > >> frame #5: 0x3bfe1a > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com