On Sep 23, 2011, at 2:40 PM, Martin Wierschin wrote:

> I think crashing is a fine behavior when one is really out of memory (eg: 
> it's not even possible to alloc a single vanilla NSObject), or when using 
> Cocoa classes that aren't memory allocators (pretty much everything besides 
> NSData). But in this case, where he's requesting big chunks (10MB at a time), 
> it would be nice if NSMutableData would return nil from its initializers to 
> signal that.
> 
> I know it's good to be consistent across the framework, and you really don't 
> want to have to test every NSData/NSMutableData operation that could fail. 
> But if you expect/know you're requesting a larger allocation, it would be 
> nice if there were methods that allowed for error checking instead of 
> undefined behavior (crashing, exceptions, logging, etc).

Well, I’m not sure I’d technically consider that being inconsistent across the 
framework in the first place, since those are two different cases — if you’re 
so badly out of memory that you can’t even allocate an NSObject, then it’s 
going to be the +alloc method that fails. However, if it’s just allocating a 
big chunk that’s failing, then +[NSMutableData alloc] is going to work fine, 
and it’s going to be one of the -initWith... methods that will actually fail.

What does +[NSObject alloc] do when the process is out of memory, anyway? Does 
it throw an exception, or just return nil? The docs don’t seem to mention 
either way.

Charles_______________________________________________

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