简体   繁体   English

将双数组存储为NSNumber

[英]Storing a double array as NSNumber

I have a variable double * data = malloc(sizeof(double)) in objectiveC; 我在objectiveC中有一个变量double * data = malloc(sizeof(double)) ;

I am using this variable as an double array like data[] to store some data. 我使用这个变量作为像data []的双数组来存储一些数据。 Now I want to add this data variable (which is an double* array) as an object NSNumber in iOS. Any idea how I can turn it into iOS object like 现在我想将这个数据变量(它是一个double *数组)添加为NSNumber in iOS. Any idea how I can turn it into iOS object like的对象NSNumber in iOS. Any idea how I can turn it into iOS object like NSNumber in iOS. Any idea how I can turn it into iOS object like NSNumber`? NSNumber in iOS. Any idea how I can turn it into iOS object like NSNumber NSNumber in iOS. Any idea how I can turn it into iOS object like

You can use NSData to wrap an arbitrary byte buffer into an Objective-C object. 您可以使用NSData将任意字节缓冲区包装到Objective-C对象中。

Use dataWithBytes:length: to create an NSData object from your double array, and bytes: or getBytes:length: to retrieve the data bytes back from the NSData object. 使用dataWithBytes:length:从double数组创建一个NSData对象,使用bytes:getBytes:length:NSData对象中检索数据字节。

Based on Mundi's answer, try this: 根据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]]];
}

Here data is array of double (that you used). 这里的datadouble (你使用过的)数组。

You cannot turn an array of primitives into one NSNumber . 您无法将基元数组转换为一个NSNumber This does not make any sense. 这没有任何意义。

You can, however, turn an array of doubles into an array of NSNumbers . 但是,您可以将一个双精度数组转换为NSNumbers数组。 Iterate through your double* array and add each number to an NSMutableArray as NSNumber using its class method numberWithDouble: . 迭代你的double *数组,并使用类方法numberWithDouble:将每个数字作为NSNumber添加到NSMutableArray中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM