フロート値の配列を作成します。これどうやってするの?私のコードは:浮動小数点値でNSArrayを作成するにはどうすればいいですか?
NSArray *tmpValue = [[NSArray alloc] init];
total = total + ([[self.closeData objectAtIndex:i]floatValue] - total)* expCarpan;
firstValue = total;
フロート値の配列を作成します。これどうやってするの?私のコードは:浮動小数点値でNSArrayを作成するにはどうすればいいですか?
NSArray *tmpValue = [[NSArray alloc] init];
total = total + ([[self.closeData objectAtIndex:i]floatValue] - total)* expCarpan;
firstValue = total;
NSArrayクラスには、他のObjective-Cオブジェクトのインスタンスしか含めることができません。幸運なことに、AppleはすでにCプリミティブ型をカプセル化するためのObjective-Cオブジェクト型をいくつか持っています。たとえば、NSNumberは、さまざまな種類のC数(整数、浮動小数点数など)をカプセル化できます。次のようNSValueは任意の構造、CGPoints、ポインタなどだから、あなたがするNSNumberを使用したNSArrayと一緒に浮くことができincapsulateことができます。
NSArray * myArray;
NSNumber * myFloatObj = [NSNumber numberWithFloat:3.14];
myArray = [NSArray arrayWithObjects:myFloatObj, nil];
あなたは、配列の最初のNSNumberから元のfloat値を取得することができます。
NSNumber * theNumber = [myArray objectAtIndex:0];
float theFloat = [theNumber floatValue];
代わりに、ワンライナーにこれを回すことができます。
float theFloat = [[myArray objectAtIndex:0] floatValue];
NSArray
はオブジェクトタイプのみです。
NSNumber *floatNumber = [NSNumber numberWithFloat:myFloat];
[myArray addObject:floatNumber]; // Assuming `myArray` is mutable.
そして配列からそのフロートを取得するために:あなたは
NSNumber
ラッパーを使用して
NSArray
に様々な非オブジェクトタイプを追加することができます
NSNumber *floatNumber = [myArray objectAtIndex:i];
float myFloat = [floatNumber floatValue];
(あなたは上記のコードで行われてきたように)。
アップデート:またCGPoint/Size/Rect/AffineTransform
、UIOffset/EdgeInsets
を含め、様々なAV財団タイプ他の非オブジェクト型、のためにNSNumber
と同じようにNSValue
ラッパーを使用することができます
。または、ポインタや任意のバイトのデータを格納するために使用できます。
プリミティブ型は、オブジェクト用のNSArrayには含めることができません。数値の場合は、NSNumberを使用して浮動小数点数をラップします。
NSNumber *n1 = [NSNumber numberWithFloat:1.2f];
NSNumber *n2 = [NSNumber numberWithFloat:1.4f];
NSArray *array = [NSArray arrayWithObjects:n1, n2, nil];
あなたの質問は理解できない方が良い説明しようとすることができますか? – shannoga
個人的には、プリミティブ型の方がはるかに適しているため、C-Arrayを使用しています。 –