1

Apple がパスとファイルの場所に関して NSString よりも NSURL の使用を推奨していることをどこかで読みました。This Stack Overflow questionは、特にこのトピックを扱っています。

しかし、NSURL と NSString (特に NSFileManager) の使用に関して、一部の API が矛盾しているように見えることに気付きました。たとえば、NSFileManager にはメソッド fileExistsAtPath: (NSString を唯一の引数として取る) がありますが、NSURL を引数として取る同等のものはありません。ただし、ファイルを削除するには、NSString を受け取るメソッドと、NSURL を受け取る同等のメソッドがあります。

この不一致には理由がありますか、それとも歴史的に拡大してきたのでしょうか?

4

2 に答える 2

4

おそらく、存在チェックの使用を思いとどまらせたいからです。ヘッダーはむしろ外交的にそれを置きます:

次の方法は、有用性が限られています。ファイルシステムの現在の状態またはファイルシステム上の特定のファイルに基づいて動作を予測しようとすると、ファイルシステムの競合状態に直面した場合の奇妙な動作が助長されます。操作が成功するかどうかを事前に把握するよりも、操作(ファイルのロードやディレクトリの作成など)を試行してエラーを適切に処理する方がはるかに優れています。

于 2012-05-29T06:11:44.187 に答える
1

大まかにファイル操作と呼ばれるもののためにNSURLに向かっているように見えるので、これはNSString側のほんの少しのレガシーコードであると確信しています。

また、あなたが参照したSOの質問は、NSURLがより望ましい理由について良い点を示しています:

また、NSURL には URLByAppendingPathComponent: と URLByAppendingPathExtension: があるため、利便性も提供されます :-)

于 2012-05-29T05:54:58.857 に答える