Making KVO safer

One of the main issues with KVO is caused by classes not knowing what observers a superclass has registered.
When a subclass also wants to observe the same keyPath they have the danger of removing the observer from the super class.

- (void)someMethod
    [self addObserver:self
Posted on
Tagged in ios , objective-c , kvo


__attribute((objc_requires_super)) was first introduced as work in progress into CLANG in September 2012 and was documented in October 2013. On both OS X and iOS there is now a NS_REQUIRES_SUPER macro that conditionally wraps the objc_requires_super attribute depending on compiler support. Once a

Posted on
Tagged in ios , objective-c

Three's LTE Has Finally Arrived

After having promised to have LTE available by the end of 2013, today was the day that my account was finally enabled for LTE on Three. While the mast near my home has not yet been upgraded for LTE. The wait was definitely worth it.

47Mbps down - 18Mbps up
This test was conducted in

Posted on
Tagged in three , lte


OCUDL: Objective-C User Defined Literals

Recently a GitHub project has been published that aims to introduce custom literals to Objective-C. The syntax is simple: $(#FF0000) would return [UIColor redColor] while $(null) could return NSNull. It also allows classes to register their own mapping. Full details can be found on Dustin

Posted on
Tagged in github , ocudl

HCViews 1.2 adds UIAlertView (HCContext)

HCViews 1.2 was released today. As well as fixing a small bug in HCChevronView it also adds UIAlertView (HCContext)

This adds a context property to UIAlertView to allow an object to be associated with it. The aim is to allow the delegate to perform the appropriate action without having

Posted on
Tagged in hcviews , github