Thursday, May 31, 2012

Apple Frustrations ...

I spent a good couple of hours tearing my hair out over a bug in my iPad app the other day.  The key problem was that I was getting a crash, without detailed error information.  I knew the line in my code that seemed to trigger the issue, a performSegueWithIdentifier call, but the error was an "attempt to insert nil object at 0 on an NSArray, which I wasn't calling.  It seemed like the details of the stack trace were obscured behing the performSegueWithIdentifier call.

I was extremely pleased when the following stack overflow post helped me add some code to the AppDelegate that got the strack trace symbolicated and printed out in the debug window

http://stackoverflow.com/questions/7841610/xcode-4-2-debug-doesnt-symbolicate-stack-call

After that I could see that the problem was related to a NavigationItem in one of my controllers that I hadn't hooked up.  It was perhaps an understandable slip since as described in one of my previous posts I had to replicate one of my viewcontrollers to support a hierarchy browse since currently viewcontrollers can't segue to an instance of themselves - at least not using the storyboard.  So the problem was I had hooked up a navigation item in one controller, but not the replicant ...

I also just renewed by Apple iOS development program.  Interesting to discover that they will pull your apps if you don't renew, so I guess I am on the hook for years now.  Google's one of payment for android app publication seems increasingly good value by comparison.  What's particularly frustrating is that having accidentally upgraded my iPad and iPhone to 5.1 I can no longer deploy apps from Snow Leopard - I must now upgrade to Lion since Apple will not allow me to downgrade to 5.0 on my iOS devices, argh!

1 comment:

Online IT Solution said...
This comment has been removed by a blog administrator.