Obj.C

obj.C:日進月歩で虫のいい話 “/”

ファイル名に使えない文字を気にはしていたのですが、早速、対応しなければなりませんでした。

ユーザが指定した文字列の中にファイル名で使えない文字があるとき、前々から「どうしよう?」と思っていたことですが、出だしからこの問題に引っかかりました。たまたま使っているサイトのhtmlから取り出したTitleが「viva Cocoa / Objective-C 入門」だったからです。

  • OS Xでファイル名に使えないのは、/です。
  • ファイル名の/:に変えると、見かけ上は/に見えます。
  • 結果、/:に変換した場合、見かけ上では、/だったのか、:だったのか、区別がつかなくなります。

解決方法

ファイル名に/:を指定した場合、スクリーンショットの通り、両方とも表示できるようにしました。
① :を漢字の:に変換
②/を:に変換

注意:変換は、ファイルパスを作るときにした方がいいです。言い換えると、ユーザが入力した文字列の:や/を変更しない方がいいです。ユーザが入力した文字列は、そのままで比較したい場合があるからです。たとえば、同じファイル名がすでにあるか等のとき、変換後だとファイル名がすでに存在しないことになります。

スクリーンショット 2014-03-20 13.11.58

ただし、この方法は、アプリ側で一方的にファイルパスを設定する場合に有効で、通常、:も/もファイル名には使わない方がいいのでしょうね?

デバッグはフォルダと.dataファイルの書き出しまでTable Viewの表示も含めてOKになりました。今、.plistの書き出しをチェックしているところです。それらの読み出しと再表示はそのあとになります。

一歩ずつ前進です。虫のいい話にも聞こえますが。

追記:

問題発生です。どうしてもNSTableViewと連動するNSMutableArrayで定義した表をファイルに書き込むことができません。NSMutableArrayからwriteする例がObjective-C:アーカイブとアンアーカイブに出ていたのでこれを参考にしたのですが、ダメでした。このほかにも、いくつか試しました。同じでした。やれやれ。

これ以上時間をを取られるのも嫌なので、.txtファイルにして書き出すことにしました。

Categories: Obj.C, 技術

Tagged as: ,