If returnValue equals to NULL reachability object is leaked, you should release it in this case. Also by Cocoa naming convention (https://developer.apple.com/library/ios/documentation/cocoa/conceptual/MemoryMgmt/Articles/mmRules.html#//apple_ref/doc/uid/20000994-SW1) you must return autoreleased object:
+ (instancetype)reachabilityWithAddress:
{
...
returnValue = [[[self alloc] init] autorelease];
Or rename the method to start for example from new: newReachabilityWithAddress
or something like this if you don't want to return an autoreleased object.
Try to run static analyser in Xcode, it can help to spot the problems.