I am currently studying objective-c and the basic c programming language.
I have a questions about a particular line of code:
if (!balance)
NSLog should return (null) (which probably is description for nil), not NULL in console. Your check should look like this:
if (!controller) { // do some stuff here }