NSNotificationCenter Block-based Observer

Back in iOS 4, a nifty block-based observer method was added to NSNotificationCenter: (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *))block; Super convenient, right? I love using blocks to pass simple callbacks to controllers instead of creating a delegate protocol. There is a catch with this method, and it's not terribly obvious unless you're looking closely. The method returns (id) - according to Apple's documentation the return object is "An opaque object to act as the observer". What does this mean? ...

December 17, 2013 · 1 min · Aaron

iOS Basics: nil vs NULL vs NSNull

Yes, there are three ways to represent a null value in Objective-C. NULL = Absence of a value with C-style pointers nil = Absence of value with Objective-C object variables NSNull = A nil boxed as an object for storage in a collection If you try adding nil to a NSDictionary or NSArray, you will find out it doesn't perform as expected. If you absolutely need to store a null value in a collection, you can use NSNull to represent the lack of a value. For example: ...

November 23, 2011 · 1 min · Aaron