Reputation: 939
I have a variable double * data = malloc(sizeof(double))
in objectiveC;
I am using this variable as an double array like data[] to store some 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
NSNumber`?
Upvotes: 1
Views: 656
Reputation: 10172
Based on Mundi's answer, try this:
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).
Upvotes: 1
Reputation: 539815
You can use NSData
to wrap an arbitrary byte buffer into an Objective-C object.
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.
Upvotes: 2
Reputation: 80273
You cannot turn an array of primitives into one NSNumber
. This does not make any sense.
You can, however, turn an array of doubles into an array of NSNumbers
. Iterate through your double* array and add each number to an NSMutableArray
as NSNumber
using its class method numberWithDouble:
.
Upvotes: 1