どんなソフトウェアパッケージでもそうですが、パッケージの機能変更によって以前のバージョンとの互換性がなくなることも時折り避けがたく発生します。特にSwarmのような試験的なパッケージではあり得ることです。
我々はユーザが新しいリリースに移行するときに発生するすべての問題を編纂して、ここに掲げようという1つの試みに挑戦してきました。これを隈なく読み、あなたのアプリケーションを新しいリリースで稼動するために必要な事項を拾い出してください。
最大かつ最も思うままに行かない問題は、新しいrandomライブラリに起因します。この問題を扱う方法はrandomライブラリのドキュメンテーションで説明しています。
swarmobjectライブラリの新しいパッケージからは、むしろ好都合な問題が生じます。このライブラリへのインターフェイスは、defobjとcollectionsライブラリの同期をもたらしました(さまよっている残りのライブラリは、後のリリースでこれに従うでしょう)。このインターフェイスの変更に関連する問題の解決は、objectbaseライブラリのドキュメンテーションで詳述されています。
新しいactivityライブラリにも、1.0で導入された好ましい非互換な機能が2つあります。activityライブラリは多くの部分が変更されましたが、ほとんどはすべて厳密に等しく稼動します。非互換性の詳細はactivityライブラリのドキュメンテーションに記載されていますが、以下で手短かに紹介しましょう。
activityライブラリは高いレベルで構造上の変更がなされ、
swarmActivity |
[self getActivity] |
getSwarmActivity |
以下のマクロはなくなります。
getCurrentActivity() |
Zoneの背景概念のほとんどはそのままですが、その機能は大きく改善され、拡張されました。あなたのコードがかなり古い場合、気をつけなければならない非互換性が1つあります。それはdropFrom:メッセージがなくなったことで、仮にそれが最近のリリースに存在していても動作はdropと同じです。これが利用されているところはすべてzone引数を使わず、単にdropメッセージに置き換えてください。SwarmObjectのサブクラスは、以前インスタンス変数に含まれていたzoneへのアクセスから制限を受けるようになりました。代わりに、getZoneメッセージを使用しなければなりません。