Greetings, NSHipsters!
As we prepare to increment our NSDateComponents -year
by 1
, it's time once again for NSHipster end-of-the-year Reader Submissions! Last year, we got some mind-blowing tips and tricks. With the release of iOS 7 & Mavericks, and a year's worth of new developments in the Objective-C ecosystem, there should be a ton of new stuff to write up for this year.
Submit your favorite piece of Objective-C trivia, framework arcana, hidden Xcode feature, or anything else you think is cool, and you could have it featured in the year-end blowout article. Just comment on this gist below!
Here are a few examples of the kind of things I'd like to see:
- Using
NSStringFromSelector(@selector())
as a safer way to do KVC / KVO / NSCoding. - Panic's rather surprising discovery about the internals of the Lightning Digital AV Adapter
- This brilliant write-up deriving block syntax from C declarators by @nilsou, or @lazerwalker's more to-the-point site, "Fucking Block Syntax"
Can't wait to see what y'all come up with!
My favorite self-written hack this year is SPAwait. It emulates the await keyword from C# 4 (or Futures.wait from node.js) by building coroutines using macros, blocks and non-structured case statements (inspired by an old mikeash post). Unfortunately, it doesn't work great with ARC :( while not usable in real life, such structure allows you to write asynchronous code as if it was synchronous, which is absolutely magical and wonderful. Way better than either callbacks or futures.
https://github.com/nevyn/SPAsync/blob/master/include/SPAsync/SPAwait.h