Quickie question: Does [NSData getBytes:range:] return <range>.length bytes into the buffer specified, even if some of the bytes may be '\0' (terminating null), so long as range is valid? I'm trying to read in a specified record from a random-access file (record length is 1000 bytes = kRecSize), and I have a self.fileContents that's an @property (nonatomic, strong) NSData *fileContents, which I set up as follows:
"FSSBorr.m" ----------- #import "FSSBorr.h" char buffer[kRecSize + 1]; // <-file scope #pragma mark "Private Suff" @interface FSSBorr () @property (nonatomic, assign) BORR_REC theRec; @property (nonatomic, copy) NSString *fileName; // These two are set up in my initWithFile: @property (nonatomic, strong) NSData *fileContents; // ditto @end @implementation FSSBorr ... -(void)loadRec:(NSUInteger)index { NSUInteger byteOffset = index * kRecSize; NSRange recordRange = NSMakeRange(byteOffset, kRecSize); char *c = &buffer[0]; char *p = (char *)(&_theRec); @try { [self.fileContents getBytes:buffer range:recordRange]; // Problem is here - not reading in all 1000 bytes. memccpy(p, c, kRecSize, sizeof(char)); } @catch (NSException *ex) { NSLog(@"%ul beyond end of file.\n", (unsigned int)index); NSLog(@"NSException thrown: %@\n", [ex description]); } } @end The file in question is several hundred kB long, and "index" = 1 for this debug session. Is there some way to view the buffer (contents) as a hex dump? I know what the bytes should be (I used "hexdump -Cv <filename>.dat > <filename>.txt to get the hex dump of <filename>.dat, which is what self.fileContents is loaded with in my initWithFile: method of this class. _______________________________________________ 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