1

私のプログラムには、Stephen G.Kochanの著書「ProgramminginObjective-C:」の第4版から取った次のコード行があります。

[fileManager createDirectoryAtPath:DATABASE_DIRECTORY attributes:nil];

注:「fileManager」は私のfm変数であり、DATABASE_DIRECTORYは私のパスの#defineです。

それは完全に正常に動作しますが(私はOSX 10.6.8を実行しています)、コンパイルするたびに次のことを思い出します。

"createDirectoryAtPath:attributes:" is deprecated

私はファイルマネージャーのリファレンスドキュメントを調べましたが、Cocoaプログラミングの初心者にとっては少し圧倒されます。とにかく、その特定のメソッドは、私が見つけた唯一のファイルマネージャーリファレンスドキュメント(https://developer.apple.com/library/mac/#documentation/Carbon/Reference/File_Manager/Reference/reference.html)にリストされていません。 「非推奨」としてもリストされていません。まったくありません。

明らかにそれはまだ機能しますが、明らかにアイデアはディレクトリを作成する別のより現代的な方法を利用することです(ファイルマネージャーの参照がCarbon対Cocoaの参照であることに気づきました。これをLionで実行してみていないかどうかを確認しますそれでも機能します。)

この非推奨の方法に直接代わるものはありますか?

そうでない場合、Appleはパス名を廃止し、代わりに完全にUnicodeに切り替えようとしていますか?(この問題と用語について少し混乱している場合はご容赦ください... 80年代後半からコードを書いていません...)過去にUnicodeを実際に使用したことがないので、どこにあるのかわかりません。始める。

誰かがCocoaでファイルを読み書きするためのUnicodeおよび/またはプログラミングコードに関する優れた現在の入門書を推奨できるなら、それは大いにありがたいです!

4

1 に答える 1

4

Apple が行っていることは、パスから URL への移行です。完全にパスが使用されるかどうかはわかりませんが、パス メソッドのかなりの数が減価償却され、URL メソッドが優先されているようです。createDirectoryAtPath:attributes: の代わりは createDirectoryAtURL:withIntermediateDirectories:attributes:error: です。

createDirectoryAtPath:attributes: を検索すると、ドキュメントでそれが見つからなかった理由がわかりません。廃止されたメソッドに移動し、その参照で代替品を示しています。

于 2012-05-06T05:05:57.327 に答える