macOS/iOS API解説

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

目次

serializeDataAt:ofObjCType:context:

変更可能なデータオブジェクトにバイト列を追加します
-(void)serializeDataAt:(const void *)data
               ofObjCType:(const char *)type
               context:(id <NSObjCTypeSerializationCallBack>)callback

解説

変更可能なデータオブジェクトにバイト列を追加します。
指定したObjective-Cのタイプでフォーマットされます。
タイプは@encode(int)や@encode(float)などです。

返り値

( void )

なし

引数

( const void * )data

データ

( const char * )type

タイプ

( id <NSObjCTypeSerializationCallBack> )callback

コールバック

クラス

NSMutableData

Instance Methods

使用可能

10.0

参照

- deserializeDataAt:ofObjCType:atCursor:context:(NSData)

例文

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

#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction:(id)sender
{
int a = 70;
NSString *b;
NSString *path = @"~/testWritetext.txt";//ユーザーディレクトリのトップのtestWritetext.txtというファイルへ
NSString *str = @"Mutable data";
NSString *str2 = @"This is a pen.";
NSData *dat1 = [NSData dataWithBytes:[str2 cString]
        length:[str2 cStringLength]];
NSMutableData *dat2 = [[NSMutableData alloc] autorelease];
[dat2 appendData:dat1];
[dat2 appendBytes:[str cString] length:[str cStringLength]];
[dat2 serializeDataAt:&a
        ofObjCType:@encode(int)
        context:nil//
        ];
[dat2 serializeDataAt:&a
        ofObjCType:@encode(int)
        context:b//NSObjCTypeSerializationCallBackプロトコルに合った
        ];


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

}

@end