Okay, now if I want to insert 1024 bytes of new data at the beginning of a 
populated NSMutableArray, is there a better way than this:

   NSMutableData *bigMData = ... // (approx 1MB of data);
   int origlength = bigMData.length;
   uint8_t *newBytesPtr = ...   
   .  .  .
   // Shift contents over by 1024 bytes
   [bigMData replaceBytesInRange:NSMakeRange(1024,origlength)
                       withBytes:bigMData.bytes
                          length:origlength];
   // Add new contents to the beginning
   [bigMData replaceBytesInRange:NSMakeRange(0,1024);
                       withBytes:newBytesPtr
                          length:1024];
This seems a bit messy.
-Carl


On Jul 12, 2014, at 1:51 PM, Matt Gough <devlists...@gmail.com> wrote:

> don’t you just want:
> 
> [bigData replaceBytesInRange:NSMakeRange(0, 1024) withBytes:NULL length:0];
> 
> ??
> 
> I am sure NSMutableData is well optimized for shunting its contents around 
> internally.
> 
> Matt
> 
> 
> On 12 Jul 2014, at 20:36, Carl Hoefs <newsli...@autonomy.caltech.edu> wrote:
> 
>> Basically what I would like is an NSMutableData method like this:
>> 
>> - (void)resetDataRangeTo:(NSRange)range
>> 
>> Parameters
>> range
>> The range within the contents of the receiver to be considered the new 
>> contents.
>> 
>> 
>> But, since that doesn't exist yet, is it safe to "shift" the contents in 
>> place of an NSMutableData? I'm trying to avoid having to copy the contents, 
>> which is > 1MB. 
>> 
>> In this example, I want to remove the leading 1024 bytes in a large 
>> NSMutableData:
>> 
>>   NSMutableData *bigData = ... // (approx 1MB of data);
>> 
>>   UInt64 byte_shift = 1024;    // skip over first 1024 bytes
>>   UInt64 new_length = bigMutData.length-byte_shift;
>>   NSRange moveRange = NSMakeRange(0,new_length);
>> 
>>   [bigMutData replaceBytesInRange:moveRange
>>                         withBytes:bigMutData.bytes+1024
>>                            length:new_length];
>>   [bigMutData setLength:new_length];
>> 
>> -Carl
>> 
>> _______________________________________________
>> 
>> 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/devlists.mg%40googlemail.com
>> 
>> This email sent to devlists...@googlemail.com
> 


_______________________________________________

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