Edited at

Reachability 4.2で何が変わったのか確認してみた

More than 3 years have passed since last update.

サンプルコードでありながら、そのままコード変更なしで使われることも多いと思われる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。