Application error during startup on valueForUndefinedKey error
I show the table view during application launch. Each row shows data for managed objects in some form. One client reports application startup failure. I looked at his crash log and was able to track down where I am using a method
within a method
. The application crashes with an exception
Why can this only trigger one device in 1000's of devices? By running the same iOS version and app, I could not simulate it on any of my devices. what could have gone wrong?
Last Exception Backtrace: 0 CoreFoundation 0x3549e88f __exceptionPreprocess + 163 1 libobjc.A.dylib 0x368c5259 objc_exception_throw + 33 2 CoreFoundation 0x3549e5c5 -[NSException init] + 1 3 CoreData 0x329d3b23 -[NSManagedObject valueForUndefinedKey:] + 327 4 Foundation 0x312b59d1 _NSGetUsingKeyValueGetter + 125 5 CoreData 0x3298d995 -[NSManagedObject valueForKey:] + 121 6 MyApp 0x0000c513 -[Activity isOn:] (Activity.m:371) 7 MyApp 0x0000beaf -[Activity firstMarkableDate] (Activity.m:163) 8 MyApp 0x0000c0cb -[Activity statusString] (Activity.m:220) 9 MyApp 0x0000bd51 -[Activity statusColor] (Activity.m:139) 10 MyApp 0x00004af1 -[ActivityListViewController tableView:cellForRowAtIndexPath:] (ActivityListViewController.m:418) 11 UIKit 0x3251d0a3 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 547
source to share
It could be a memory management issue. See
where it is calling
. The object you are sending
appears to be of the wrong class. See where the object is coming from.
An object can be reissued, and its memory address can be occupied by an object of another class that does not match the KVO for the key
. In this case, I would bet your application gets
even more often.
Why is this happening?
have a lot of subtleties regarding their lifetime. For example, they can be removed elsewhere in your application, so you should always expect this and act accordingly.
I hope this points you in the right direction.
source to share