On May 19, 2011, at 22:31 , Quincey Morris wrote:

> On May 19, 2011, at 21:53, Rick Mann wrote:
> 
>> But frankly, that's a kludge. Cocoa is full of inconsistencies (like 
>> NSFileManager/NSFileHandle lacking modern file creation methods) forcing the 
>> (ab)use of another API. Sure, it works (I'm guessing), but it's ugly.
> 
> It's in the eye of the beholder. From where I'm standing, it's deeply 
> consistent -- NSData is my go-to class for writing N bytes of arbitrary data 
> to a file. Why is N==0 an abuse?
> 
> Also, if I create a mutable data object:
> 
>       NSMutableData* dataBuffer = [NSMutableData data];
> 
> then I can use it to create the file and then re-use it as the data buffer I 
> need to pass to [NSFileHandle writeData:].
> 
> With this technique, I've reduced the number of lines of boring housekeeping 
> code needed to create the file and set up a data buffer I wanted anyway. 
> Concision is good.
> 
> With this technique, I've abstracted my task -- writing data bytes to a file 
> in one or more pieces -- away from a series of lower level tasks (interacting 
> with a file system) that have no particular interest. Abstraction is good.

I don't see how the NSData write allows me to append to an open file.

> 
> Finally, you don't have to guess that it works. It's a line of code I've used 
> many times. When posting code here to save you a little time and effort, I 
> wouldn't waste your time suggesting doubtful code.

I appreciate that.

But the entire email thread could've been avoided if there were methods with 
obvious names (like createFileURL: or whatever). Or if NSFileHandle write... 
would have created the file, like NSData's write... does.

Those are the inconsistencies I refer to.

-- 
Rick


_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

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

Reply via email to