macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

replaceBytesInRange:withBytes:

指定した範囲のデータを置き換えます
-(void)replaceBytesInRange:(NSRange)range
          withBytes:(const void *)bytes

解説

指定した範囲(range)のデータを置き換えます。
指定した範囲がレシーバより大きければ、NSRangeExceptionが起こされます。
必要に応じてサイズが変更されます。

返り値

( void )

なし

引数

( NSRange )range

範囲

( const void * )bytes

置き換えるバイト列

クラス

NSMutableData

Instance Methods

使用可能

10.0

参照

例文

//testWritetext.txtのファイルが警告無しで下記変わるので注意!!!!

#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction:(id)sender
{
NSString *path = @"~/testWritetext.txt";//ユーザーディレクトリのトップのtestWritetext.txtというファイルへ
NSString *str1 = @"Mutable data";
NSString *str2 = @"xxx";

unsigned len;
unsigned char *aBuffer;

NSMutableData *dat1 = [NSMutableData dataWithCapacity:1];
NSMutableData *dat2 = [NSMutableData dataWithBytes:[str2 cString]
        length:[str2 cStringLength]];
        
[dat1 appendBytes:[str1 cString] length:[str1 cStringLength]];

len = [dat2 length];
aBuffer = malloc(len);
[dat2 getBytes:aBuffer];
[dat1 replaceBytesInRange:NSMakeRange(1,len) withBytes:aBuffer];

if ([dat1 writeToFile:[path stringByExpandingTildeInPath] atomically:YES]){
    NSLog(@"YES");
}else{
    NSLog(@"NO");
}

}

@end