getValue:
レシーバの値オブジェクトの内容をバッファにコピーします
-(void)getValue:(void *)buffer:
解説
レシーバの値オブジェクトの内容をバッファにコピーします。
バッファは、値を格納するのに十分なサイズがないといけません。
返り値
( void )
なし
引数
( void * )buffer
バッファのポインタ
フレームワーク
Foundation
クラス
NSValue
Instance Methods
使用可能
10.0
参照
例文
#import "MyObject.h" @implementation MyObject - (IBAction)myAction:(id)sender { //Rangeを渡す場合 NSRange aRange = {5, 15}; NSValue *theValue3 = [NSValue valueWithBytes:&aRange objCType:@encode(NSRange)]; NSRange bufferRange; [theValue3 getValue:&bufferRange]; NSLog(@"---%u,%u",bufferRange.location,bufferRange.length); //char*を渡す場合 char *aCString = "thestring"; NSValue *theValue = [NSValue valueWithBytes:&aCString objCType:@encode(char *)]; char *bufferChar[100]; [theValue getValue:&bufferChar]; NSLog(@"---%s",*bufferChar); //単にポインタを渡す場合 id anObject = @"Obj-C string"; NSValue *theValueOfPointer = [NSValue valueWithBytes:&anObject objCType:@encode(void *)]; id theObjPointer; [theValueOfPointer getValue:&theObjPointer]; NSLog(@"---%@",theObjPointer); //上の例を書き換えるとこうなる NSValue *theValueOfObj = [NSValue valueWithNonretainedObject:@"Obj-C string"]; id theObj; [theValueOfObj getValue:&theObj]; NSLog(@"---%@",theObj); //intを渡す場合 int intValue = 1234; NSValue *theValueOfInt = [NSValue valueWithBytes:&intValue objCType:@encode(int)]; int bufferInt; [theValueOfInt getValue:&bufferInt]; NSLog(@"---%d",bufferInt); //Sizeを渡す場合 NSSize aSize = NSMakeSize(1.0,2.0); NSValue *theValueOfSize = [NSValue valueWithBytes:&aSize objCType:@encode(NSSize)]; NSSize bufferSize; [theValueOfSize getValue:&bufferSize]; NSLog(@"---(%f,%f)",bufferSize.width,bufferSize.height); //Rectを渡す場合 NSRect aRect = NSMakeRect(1.0,2.0,300,400); NSValue *theValueOfRect = [NSValue valueWithBytes:&aRect objCType:@encode(NSRect)]; NSRect bufferRect; [theValueOfRect getValue:&bufferRect]; NSLog(@"---((%f,%f),(%f,%f))",bufferRect.origin.x,bufferRect.origin.y,bufferRect.size.width,bufferRect.size.height); } @end