I sometimes get EXC_BAD_ACCESS without knowing the source.I enabled Zombies and this is now what I get on the console:
2018-08-27 18:37:41.785523+0530 MyProject[3419:1228271] *** -[MyProject.VideoLibrary retain]: message sent to deallocated instance 0x103078200
VideoLibrary is the name of controller and I am not sending any retain messages. How do I go further to identify the issue and fix it? I am using Swift 4.0 if that matters.
When I want to have more information about a crash, I create an exception breakpoint.
You can add one from the breakpoint navigator by clicking on the "+".
When added, edit it and add po $arg1 for action. This will print information about the exception.
Related
When running my app on device, it crashes right when I initiate my AvPlayer to stream an mp3. However, it works fine on simulator.
I have tried to run it through Zombie and I get the following error message when it crashes : "An Objective-C message was sent to a deallocated 'UIActivityIndicatorView' object (zombie) at address: 0x108c020e0"
I am using an Activity indicator in previous scenes but I have tried to remove it completely, leaving no line of code mentioning any UIActivityIndicatorView and I still get the same error.
Any idea of how to deal with this? Can it be linked to the system activity indicator displayed the status bar?
Many thanks for your help
It's a crash because of abusing appearance API not as documenting (setting a property not marked with UI_APPEARANCE_SELECTOR).
For reference, see here.
There are a lot of posts on this 'type' of error
[__NSCFNumber length]: unrecognized selector sent to instance 0xb000000000c58913
but none of it has bearing on my situation unfortunately.
The reason is our app is crashing on a background thread with the flurry SDK. I can't investigate the stack trace any deeper because I just get machine code.
I've tried commenting every line of code inside my flurry.m file but not of it encapsulates the error because this is happening inside the flurrySDK.
Its always crashing on thread 22 when I resume from background on the function
+[FlurryProtocolData limitStringLength:]
If you have any advice what so ever on how I look at this further I would love to hear it!
We were passing an ID as one of the session parameters to Flurry.
However it doesn't cause a crash until its loaded from a background thread oddly enough.r
Making sure the ID was a string before passing it fixed the issue.
I am having the error which is in the title of the question:
[UIGestureDelayedTouch _didEndScroll:]: unrecognized selector sent to instance 0x8ac52d0
It occurs when I click on the button OR on the table cell.
Trying to debug it I cleared out that this error occurs before the functions that are called when the button/cell is clicked. But after the app is loaded. I.e. the app is working fine untill I make a click, so I cannot locate the code responsible for this error.
I know there are plenty of questions concerning unrecognized selectors and I DID look through them, but I could not find the solution to mine.
And what's more devastating I have no idea what UIGestureDelayTouch and _DidEndScroll are.
In the program I did not implement neither gestures support, nor any scroll views.
Will be thankful for any ideas on why this might be happening.
Every time a user taps the home button while my app is active, I am getting the following exception. Slight caveat - The example exception below references NSCFString. However, the type of object that gets sent this message, and thus causes the exception is totally random. It could be an NSData or an OS_dispatch_queue_specific_queue.
[__NSCFString didEnterBackground:]: unrecognized selector sent to
instance 0x155344c0 * Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-[__NSCFString
didEnterBackground:]: unrecognized selector sent to instance
0x155344c0
Happens every single time the app is resigned active, but the object receiving the message is never the same.
I assume this is some sort of memory issue but am having trouble tracking it down. Mostly because nothing in my code ever directly sends/receives this message, or is registered to receive the UIApplicationWillResignActiveNotification. Also, there is nothing in my appDelegate for the applicationDidEnterBackground:application method.
Has anyone ever seen this type of behavior? And if so, what is the best way to debug? Or maybe another way, what sorts of objects would be automatically sent the didEnterBackground message that I am clearly mismanaging?
It sounds like you have a zombie.
A zombie is an object that gets called after it is deallocated. Often, the memory address of the object is then used for another object, so the message goes to the wrong object.
Do you have code that registers one of your application objects for a "did enter background" notification (UIApplicationDidEnterBackgroundNotification) using the method addObserver:selector:name:object:? And does that notification specify a selector of "didEnterBackground:?"
My guess is that you're registering for UIApplicationDidEnterBackgroundNotification notifications, and then the notificationObserver you're specifying is being deallocated. That would cause the exact behavior you are describing.
BTW, you might want to run your app using the zombies instrument, or turn on the NSZombies environment variable to look for zombies. Then press the home button to cause the crash and see what Xcode/instruments tells you.
I am experiencing a hard to debug problem. My program crashes because a message is sent to a deallocated object. Using Zombie Objects, I have found out what is causing it to crash, but don't know how to fix it. When my view dissappears, I set the FlurryAds delegate to nil, and upon that view appearing I set it to the view. When I background my app and am in this view, I immediately get a crash. Is there a bug in Flurry?
This is the message printed to the console:
2013-01-18 14:04:44.626 Purdue Course Sniper[19212:c07] *** -[FlurryAd space]: message sent to deallocated instance 0xa6ac490
I am not sending this message anywhere ^^. Why is this message being sent anyways? The delegate is set to nil..
I work for Flurry and I will be happy to help. I need to understand a little more about your integration. Namely, more about this statement "When my view dissappears, I set the FlurryAds delegate to nil, and upon that view appearing I set it to the view". What view is disappearing and appearing? Is this a fullscreen ad? It would also help to know details of your account with Flurry. Can you send an email to support#flurry.com so we can access your account? Thanks and sorry you are experiencing an issue.
(Full disclosure: I work in the Support team at Flurry)