HazelnutWorksHazelnutWorksiPhoneアプリ作ってます。Androidも始めました。hazeliOSでユーザ拡張子を定義する方法と、UIDocumentInteractionControllerでそれを開く方法について、ちょっと悩んだのでメモ。拡張子.mydocを定義するサンプルです。1.OSに対して拡張子を定義する<アプリ名>-Info.plistに以下の内容を追記する。TEST</string><key>UTTypeIdentifier</key><string>com.myproject.mydoc</string><key>UTTypeTagSpecification</key><dict><key>public.filename-extension</key><string>mydoc</string></dict></dict></array></pre>[/xml]2.拡張子にアプリケーションを関連付ける<アプリ名>-Info.plistに以下の内容を追記する。[xml]<key>CFBundleDocumentTypes</key><array><dict><key>CFBundleTypeExtensions</key><array><string>mydoc</string></array><key>CFBundleTypeName</key><string>MyDocumentType</string><key>CFBundleTypeRole</key><string>Viewer</string><key>LSItemContentTypes</key><array><string>com.myproject.mydoc</string></array><key>LSTypeIsPackage</key><false/><key>NSPersistentStoreTypeKey</key><string>Binary</string></dict></array>[/xml]3.独自拡張子に関連づけられたアプリケーションを起動する以下のようなコードを追加する。細かいところは適当にアレンジしてください。filePathには、起動するアプリケーションに渡すローカルファイルのバスを設定してください。release];}[/objc]4.ファイルオープン要求イベントを処理する独自拡張子と関連付いているアプリケーション側の処理です。AppDelegate内に追記してください。このサンプルは、ファイルの中身がテキスト文字列の場合の処理です。実際の処理はファイルフォーマットに合わせて変えてください。NO;}[/objc]5.その他UIDocumentInteractionControllerを使うと、アプリケーション間でファイルの受け渡しができます。渡されたファイルは受け側(起動される側)のアプリケーションの/Documents/Inbox/内に書き込み不可の属性でコピーされます。この仕組みをうまく使うと、無償版のアプリから有償版アプリへのデータ移行が簡単にできます。(BPNoteの次バージョンで追加の予定)ただし、iOS3.2以上で無いと動きません。+++コメントは受け付けていません。