Le 14 sept. 2014 à 10:23, Quincey Morris <quinceymor...@rivergatesoftware.com> 
a écrit :

> On Sep 14, 2014, at 00:57 , Aandi Inston <aa...@quite.com> wrote:
> 
>> Why? Really, why? Certainly there are APIs where we have to use URL's and
>> we have to convert the path into a URL, but where a non-deprecated
>> path-based URL exists, what current or future obstacles do you foresee? The
>> URL doesn't seem to be more predicable or persistent, for example.
> 
> It’s not an absolute rule, and it’s certainly possible to defend the use of 
> path APIs, but here are some of my reasons:
> 
> 1. NSURL-based APIs were introduced *in order to* replace path-based APIs, so 
> using the new APIs maybe helps to future-proof your code. IOW, sometimes 
> Apple gives us hints as to what continents are moving in the API geoscape, 
> and sometimes they do this by replacing APIs with new ones that more or less 
> seem to do the same thing — until later they don’t.
> 
> For example, although Cocoa generally requires *file* URLs for non-internet 
> things, it’s possible that in the future we’ll need to locate resources that 
> don’t have a traditional path.
> 
> 2. I think some path-based APIs had quirks, for example about handling paths 
> that started with a tilde, or other environment-related issues. Generally, 
> NSURL-based APIs are regular in their behavior. However, I don’t have any 
> examples of this difference at hand, and I could easily be wrong about this 
> point.
> 
> 3. Some NSURL-based APIs improved or corrected the methods that they 
> replaced. For example, the new APIs follow standard conventions for returning 
> errors.
> 
> 4. Some things can only be done with NSURL-based APIs. For example, sandboxed 
> access to files chosen by users.
> 
> Because of #3 and #4, you’re going to be using NSURL at least some of the 
> time, and mixing the two API styles gets messy fast. If you have to pick one, 
> NSURL is the one to pick.
> 
> Here are some of the reasons for using path-based APIs:
> 
> 1. You’re writing a command line utility that’s (e.g.) POSIX-compliant or 
> crosses to other UNIX platforms. In that case, its probably more consistent 
> to stick with paths, unless you have some other reason to deal with URLs.
> 
> 2. You’ve got existing code that uses path-based APIs, and you can’t justify 
> the time it would take to convert.
> 
> Because the above is too long to be useful in response to posts on other 
> issues, I decided to reduce it to “You should use URL-based equivalents 
> generally.”
> 

One other point is that NSURL API abstract the way you access a file and let 
you transparently use different concept to reference a file like 'file 
reference'.


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to