高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

TB 30 - 同じタイプとIDを有する複数のリソース

(27-November-96)

Q: Resource Managerに関するドキュメントを読んでいても、あるリソースファイル中の所定のリソースタイプ中ではリソースIDはユニークでなければならないかどうかということに関して、明確な記述を見つけることができないような気がするのです。いくつかのドキュメントでは、プログラムがリソースをIDで探そうとしない限りは、リソースIDが重複していても問題ない、と書かれていたように思います。本当の所どうなんでしょうか?

A: あなたのいうことは正しいのです。最近行われたAppleのドキュメント(新旧のInside MacintoshやTechnote等)に対する広範なサーベイでは、リソースIDに関する言及は十分にクリアにはなされていないということが判明しました。

実際には、あるリソースファイル中の所定のリソースタイプ中では、リソースIDはユニークであるべきです。リソースをリソースファイルに追加する際には、ユニークなリソースIDを見つけるためにUniqueIDUnique1IDを使用する必要があるかもしれません。

しかしながら、いくつかのリソースファイルでは同じタイプとIDの複数のリソースを含んでいます。これは、それらのリソースファイルを作成したプログラムのバグや、あるいは、先に述べたようにドキュメントが曖昧なことによるものです。あなたのアプリケーションが作成したのではないリソースファイルを読む場合には、そのようなファイルをうまく処理するようにしてください。

その他のドキュメントでどのような記述を読んだかに関わらず、Mac OSのいくつかのバージョンに含まれているResource Managerは、同じタイプとIDの複数のリソースを含んだファイルを読むと予測不能な動作をする可能性があります。

所定のファイルが同じタイプとIDの複数のリソースを含んでいるかどうかを調べる簡単な方法は、ResorcererやResEditでオープンしてみることです。それらのツールは、もしそのような状況を発見すれば警告をしてくるでしょう。


[ Technical Q&A's : Operating System Services : Toolbox : TB30 ]