在Java中,它看起来像这样:
class Foo { float[] array; } Foo instance = new Foo(); instance.array = new float[10];
Adam Rosenfi.. 13
你可以使用一个指针:
float *array; // Allocate 10 floats -- always remember to multiple by the object size // when calling malloc array = (float *)malloc(10 * sizeof(float)); ... // Deallocate array -- don't forget to do this when you're done with your object free(array);
如果你使用的是Objective-C++,你可以改为:
float *array; array = new float[10]; ... delete [] array;
Chris Lundie.. 8
这是另一种方法.创建一个NSMutableArray对象并向其添加NSNumber对象.由你来决定这是否合理.
NSMutableArray *array; array = [[NSMutableArray alloc] init]; [array addObject:[NSNumber numberWithFloat:1.0f]]; [array release];
pcbeard.. 6
在Objective-C中执行此操作的另一种方法是使用索引实例变量:
@interface ArrayOfFloats : NSObject { @private NSUInteger count; float numbers[0]; } + (id)arrayOfFloats:(float *)numbers count:(NSUInteger)count; - (float)floatAtIndex:(NSUInteger)index; - (void)setFloat:(float)value atIndex:(NSUInteger)index; @end @implementation ArrayOfFloats + (id)arrayOfFloats:(float *)numbers count:(NSUInteger)count { ArrayOfFloats *result = [NSAllocateObject([self class], count * sizeof(float), NULL) init]; if (result) { result->count = count; memcpy(result->numbers, numbers, count * sizeof(float)); } return result; } ... @end
有关更多信息,请参阅NSAllocateObject()的文档.索引实例变量的限制是您不能子类化使用它们的类.
你可以使用一个指针:
float *array; // Allocate 10 floats -- always remember to multiple by the object size // when calling malloc array = (float *)malloc(10 * sizeof(float)); ... // Deallocate array -- don't forget to do this when you're done with your object free(array);
如果你使用的是Objective-C++,你可以改为:
float *array; array = new float[10]; ... delete [] array;
这是另一种方法.创建一个NSMutableArray对象并向其添加NSNumber对象.由你来决定这是否合理.
NSMutableArray *array; array = [[NSMutableArray alloc] init]; [array addObject:[NSNumber numberWithFloat:1.0f]]; [array release];
在Objective-C中执行此操作的另一种方法是使用索引实例变量:
@interface ArrayOfFloats : NSObject { @private NSUInteger count; float numbers[0]; } + (id)arrayOfFloats:(float *)numbers count:(NSUInteger)count; - (float)floatAtIndex:(NSUInteger)index; - (void)setFloat:(float)value atIndex:(NSUInteger)index; @end @implementation ArrayOfFloats + (id)arrayOfFloats:(float *)numbers count:(NSUInteger)count { ArrayOfFloats *result = [NSAllocateObject([self class], count * sizeof(float), NULL) init]; if (result) { result->count = count; memcpy(result->numbers, numbers, count * sizeof(float)); } return result; } ... @end
有关更多信息,请参阅NSAllocateObject()的文档.索引实例变量的限制是您不能子类化使用它们的类.