スーパークラス: NSObject
適合プロトコル: NSSecureCoding, NSCopying, NSObject
フレームワーク: Foundation in OS X 10.0 and later, More related items
概要
NSValue オブジェクトは、1つのCまたはObject-Cデータを内包するのシンプルなコンテナです。これは、どんなタイプのスカラー値、int, float, char, ポインタ、構造体、id 型オブジェクトを保持できます。このクラスを使えば、先に挙げたデータ型を、要素がオブジェクトでなくてはならい NSArray や NSSet のようなコレクションクラスへ加えられるようになります。NSValue オブジェクトは、常に不可変です。
準拠するプロトコル
- NSCoding
encodeWiithCoder;
initWithCoder:
- NSCopying
copyWithZone:
タスク
NSValueの生成
- initWithBytes:objCType:
+ valueWithBytes:objCType:
+ value:withObjCType:
+ valueWithNonretainedObject:
+ valueWithPointer:
+ valueWithPoint:
+ valueWithRange:
データへのアクセス
- getValue:
- nonretainedObjectValue
- objCType
- pointerValue
- rangeValue
オブジェクトとの比較
- isEqualToValue:
クラスメソッド
+ value:withObjCType:
引数 value を内包するNSValueオブジェクトを生成して返します。value は、与えられたObjective-C型 type であるものとしてエンコードされています。
+ (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type
Parameters
value
新しくNSValueオブジェクトとする値。
type
valueのObject-Cのデータ型。type'は、Objective-Cの@encode()コンパイラ指定子から作るべきで、C文字列でハードコートするべきではありません。
Return Value
valueを内包する、新しいNSValueオブジェクト。そのオブジェクトは、与えられたObjective-C でのデータ型, type, であるものとしてでエンコードされています。
Discussion
このメソッドは、valueWithBytes:objCTypeと同じ挙動をします。このメソッドは将来のリリースで廃止されるかもしれませんので、valueWithBytes:objCTypeメソッドを使うべきです。
Availability
OS X v10.0 以降
See Also
+ initWithBytes:objCType:
Declare in
NSValue.h
+ valueWithBytes:objCType:
引数 value を内包するNSValueオブジェクトを生成して返します。value は、与えられたObjective-C でのデータ型, type, であるものとしてエンコードされています。
+ (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type
Parameters
value
新しく NSValue}オブジェクトとする値。
type
valueに対応するObject-Cのデータ型。typeは、Objective-Cの@encode()コンパイラ指定子から作るべきで、C文字列でハードコートするべきではありません。
Return Value
valueを内包する、新しいNSValueオブジェクト。そのオブジェクトは、与えられた Objective-Cでのデータ型, typeであるものとしてエンコードされています。
Discussion'
NSValue オブジェクトの作成についてと、コードサンプルについては、Number and Value Program Topics?を参照してください。
Availability
OS X v10.0 以降
See Also
- initWithBytes:objCType:
Declare in
NSValue.h
+ valueWithNonretainedObject:
引数のオブジェクトを内包するNSValueオブジェクトを生成して返す。
+ (NSValue *)valueWithNonretainedObject:(id)anObject
Parameters
anObject
新しいオブジェクトへ入れる値。
Return Value
anObjectを内包する新しいNSValueオブジェクト。
Discussion
このメソッドは、次の方法でのvalue:withObjCType:の呼び出しと同じです。
NSValue *theValue = [NSValue value:&anObject withObjCType:@encode(void *)];
強い参照を持たないようにしてコレクションへ格納したいとき、このメソッドは便利です。
Availability
iOS 2.0 以降
See Also
- nonretainedObjectValue
Declare in
NSValue.h
+ valueWithPointer:
引数のポインタを内包するNSValueオブジェクトを生成して返します。
+ (NSValue *)valueWithPointer:(const void *)aPointer
Parameters
aPointer
新しいオブジェクトへ入れる値。
Return Value
aPointerを内包する、新しいNSValueオブジェクト。
Discussion
このメソッドは、次の方法でのvalue:withObjCtTypeの呼び出しと同じです。
NSValue *theValue = [NSValue value:&aPointer withObjCType:@encode(void *)];
このメソッドは、aPointerの内容ををコピーしません。ですから、対応するNSValueオブジェクトが存在する間は、ポインターが指し示すメモリーを解放してはいけません。この点では、NSValueオブジェクトよりも[NSData?]オブジェクトの方が、任意のポインタへは向いているかもしれません。
Availability
iOS 2.0 以降
See Also
- pointerValue
Declare in
NSValue.h
+ ValueWithRange:
引数のNSRangeを内包するNSValueオブジェクトを生成して返します。
+ (NSValue *)valueWithRange:(NSRange)range
Parameters
range
新しいオブジェクトのための値。
Return Value
rangeの値を内包する、新しいNSValueオブジェクト。
Availability
iOS 2.0以降
See Also
- rangeValue
Declare in
NSRange.h
インスタンスメソッド
- getValue:
引数で与えられたバッファへ、レシーバが内包する値をコピーする。
- (void)getValue:(void *)buffer
Parameters
buffer
コピーを格納するレシーバの値をコピーするバッファ。このバッファは、値を保持するのに十分な大きさである必要があります。
Availability
iOS 2.0以降。
Related Sample Code
KeyboardAccessory
MultipeerGroupChat
Declared In
NSValue.h
- initWithBytes:objCType:
引数で与えられた値を内包するNSValuオブジェクトを初期化して返します。引数の値は、これも与えられた Objective-C型 typeであるものとしてエンコードされます。
- (id)initWithBytes:(const void *)value objCType:(const char *)type
Parameters
value
新しいNSValueオブジェクトに内包させる値。
type
valueのObjective-C型。typeは@encode()指定子で作るべきで、C文字列でハードコートしないべきでしょう。
Return Value
valueを内包する初期化されたNSValueは、Objective-C型のtypeであるものとしてエンコードされます。ここで返されるオブジェクトは、オリジナルのレシーバオブジェクトとは異なるものであるのがよいでしょう。
Discussion
NSValueオブジェクトを生成するほかの方法については、[Number and Value Programming Topics?]を参照するといいでしょう。
この書類には、NSValueクラスの指定イニシャライザについて紹介してあります。
Availability
iOS 2.0以降。
Declared In
NSValue.h
- isEqualToValue:
レシーバと引数のオブジェクトが等しいかどうかを、ブーリアン値で返します。
- (BOOL) isEqualToValue:(NSValue *)aValue
Parameters
aValue
レシーバと比較する値。
Return Value
レシーバとaValueとが等しいならYESを返し、そうでないならNOを返します。ここで等しいかどうかを決定するには、NSValueオブジェクト、クラス型、内包する値、これらがすべてが比較されます。
Availability
iOS 2.0以降。
Declared In
NSValue.h
- nonretainedObjectValue
レシーバの値をid型として返します。
- (id)nonretainedObjectValue
Return Value
id型としてのレシーバの値。レシーバがポインタデータで表現されたデータを保持するものとして生成されていないと、返り値は不定となります。
Availability
iOS 2.0以降
See Also
-getValue:
Declared In
NSValue.h
- objCType
レシーバが内包するデータのObjective-C型をしめすC文字列を返します。
- (const char *)objCType
Return Value
レシーバが内包するデータのObjective-C型をしめすC文字列。これは@encode()指定子でエンコードされたものです。
Availability
iOS 2.0以降
Declared In
NSValue.h
- pointerValue
voidを指すポインタとしてレシーバの値を返します。
- (void *)pointerValue
Return Value
voidを指すポインタとしてのレシーバ値。もし、レシーバがポインタデータで表現されたデータを保持するものとして生成されていないと、返り値は不定となります。
Availability
iOS 2.0 以降
See Also
- getValue:
Declared In
NSValue.h
- rangeValue
レシーバが保持するNSRange構造を返します。
- (NSRange)rangeValue
Return Value
レシーバが保持するNSRange構造。
Availability
iOS 2.0 以降
See Also
+ valueWithRange:
Declared In
NSRange.h
Document Revision History
This table describes the changes to NSValue Class Reference.
Date | Notes |
2007-10-31 | Corrected typographical errors. |
2006-05-23 | First publication of this content as a separate document. |
Copyright © 2007 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2007-10-31