Memento - Check your IB connections!

Yesterday I was checking a strange comment about BabiBooks in the italian page of the App Store, the commenter praised the App but he said something about the camera or photo library not working.

Because I was sure that all the tests I had done on my iPhone 3G were ok, I thought it could be a problem with the iPhone 3GS, so yesterday I tested it on my brother in law's 3GS and I was able to reproduce the problem.

Before shipping the latest version of the App I changed the way I accessed the UIImagePickerController so I guessed that the problem could be there... 

Wrong.

Before looking at the code I got an idea: my brother in law's iPhone interface is in italian, while mine is in english because I didn't changed it back when I took the screenshots for the AppStore, so if I change my iPhone language back to italian maybe I'll have the same problem.

Right.

As soon as I tested the application in italian, the camera and library icons didn't work, so I opened the XCode project and found out that I didn't make all the Interface Builder connections in the italian version of the Nib file. So I remembered that Just before releasing the app I had to track down some strange memory issues and so I had decided to create an instance of UIImagePickerController in the NIB, but I had totally forgotten that I should have made the change in both the Italian and the English Nib file...

This is the lesson for me: 

always triple check your project before releasing and try to avoid, if possible, different nibs for every languages, because if you make changes to the original nib after having created the localized one, you could easily forget to update the localized one...

Stefano