サンプルコードでありながら、そのままコード変更なしで使われることも多いと思われるReachabilityについて、リビジョンが3.5から4.2に上がっていたので何が変わったのか確認してみました。
Minor bug fixes
Revision Historyを見てみると、2015/11/12付けで「Minor bug fixes」と書かれています。実際にはコードには下記が追加されています。
Core Foundationオブジェクトのリリース処理
Reachability.m(79-81行目)
else {
CFRelease(reachability);
}
Reachability.m(101-103行目)
else {
CFRelease(reachability);
}
viewDidLoadのsuper呼び出し処理
APLViewController.m(40行目)
[super viewDidLoad];
Reachabilityそのものに関する実質的なバグフィックスとしては、
Core Foundation(SCNetworkReachabilityRef)オブジェクトのリリース処理が抜けていたので追加したということのようです。
Requirements iOS 8.0 or later
LaunchScreen.storyboardファイルが追加されています。起動画面としてstoryboard(xib)を使えるようになったのは、Xcode 6/iOS 8.0以降なので、RequirementsとしてiOS 8.0 or laterとなっているのでしょう。他にはReachability-Info.plistを確認すると、CFBundleIdentifierのvalueが$(PRODUCT_BUNDLE_IDENTIFIER)に変わっていたりします。
まとめ
すでにReachabilityを実質的なユーティリティクラスとして使っている場合、リビジョン3.5をベースにして使っていると思われるので、下記を理解しておけば十分かと思います。
- リビジョン3.5から4.2において、Reachbilityクラス内部においてCore Foundationオブジェクト解放処理が追加された(バグフィックス)。
- リビジョン3.5から4.2において、公開メソッドは変わっていない。Reachability.{h,m}ファイルを差し替えるだけでOK。