BathyScaphe

BathyScapheWiki

til511

OS X Mountain Lion:BathyScaphe 2.2 以降が必要です

OS X Mountain Lion で BathyScaphe を使用するには、バージョン 2.2 以降が必要です。それ以前のバージョンは Mountain Lion では動作しません

対象となるソフトウェア

  • OS X Mountain Lion
  • BathyScaphe 2.1.1 以前のすべてのバージョン

対処方法

Mountain Lion で BathyScaphe を使用するには、必ず BathyScaphe 2.2 以降にアップデートしてください。

BathyScaphe 2.1.1 以前には、掲示板リスト項目の処理に関してバグがあります。このバグは掲示板データの読み込みに影響を及ぼすため、事実上 BathyScaphe のすべての動作に影響を及ぼします。このバグは OS X Lion までは OS 側の「寛大な振る舞い」によって表面化していませんでしたが、OS X Mountain Lion では OS 側の振る舞いが変わったため、このバグが発現します。ただし、これは OS の仕様に反するものではなく、BathyScaphe 側の落ち度です。

このバグは BathyScaphe 2.2 で修正されました。よって、BathyScaphe 2.2 以降は Mountain Lion で問題なく動作します。

BathyScaphe 2.2 は Mac OS X v10.6.8 および OS X Lion 上でも問題なく動作します。Mountain Lion をまだ使用していない場合でも、2.2 へのアップデートを行っておくことをおすすめします。

参考情報

このバグについてもう少し詳しく説明します。

BathyScaphe 内部で、下のように NSMutableDictionary クラスにカテゴリでメソッドを追加しています:

@interface NSMutableDictionary(BathyScaphe_category_added_method)
- (id)someMethod;
@end

-someMethod は NSMutableDictionary クラスに追加したメソッドですから、当然、NSMutableDictionary のインスタンスでしか使用できません。しかし、実際には下のように NSDictionary のインスタンスに対して -someMethod を呼び出している箇所がありました:

NSDictionary *dict = ...;
[dict someMethod]; // えっ、いいの?!
...

驚くべきことに、OS X Lion までは、この呼び出しが正常に実行されていました。

OS X Mountain Lion では、この呼び出しの箇所で unrecognized selector となり、ランタイムエラーが発生します。このため、処理が実行できません。この呼び出しが掲示板オブジェクトの生成時に発生するため、掲示板オブジェクトの生成に失敗し、ユーザから見ると掲示板リスト・スレッド一覧いずれも真っ白でどうしようもない、という症状が発生することになります。

BathyScaphe 2.2 では、次のようにレシーバを NSMutableDictionary に変更して、問題を解決しました:

NSMutableDictionary *dict = ...; // formerly NSDictionary
[dict someMethod]; // 問題なし

Article ID: 511
カテゴリ: Tech Info Library

Last Modified: