将双数组存储为NSNumber

时间:2013-02-22 10:31:03

标签: iphone ios objective-c ios5 ios6

我在objectiveC中有一个变量double * data = malloc(sizeof(double));

我将此变量用作data []之类的双数组来存储一些数据。现在我想将此数据变量(这是一个double *数组)添加为对象NSNumber in iOS. Any idea how I can turn it into iOS object like NSNumber`?

3 个答案:

答案 0 :(得分:2)

您可以使用NSData将任意字节缓冲区包装到Objective-C对象中。

使用dataWithBytes:length:从双数组创建NSData对象,使用bytes:getBytes:length:NSData对象检索数据字节。

答案 1 :(得分:1)

您无法将基元数组转换为一个NSNumber。这没有任何意义。

但是,您可以将一个双精度数组转换为NSNumbers数组。迭代您的double *数组,并使用其类方法NSMutableArray将每个数字添加到NSNumber numberWithDouble:

答案 2 :(得分:0)

根据Mundi的回答,试试这个:

NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:0];
for (int i = 0; i < lengthOfDoublearray; i++) { // as premitive DataType array needs predefined length
    [array  addObject:[NSNumber numberWithDouble:data[i]]];
}

此处datadouble(您使用过的)数组。