一種方法是將NSData
內容轉換爲NSNumber
的NSArray
一個實例 - 請注意,你」因爲NSArray
只能容納物體,所以需要將浮體包裹到NSNumber
中。
@interface NSData(MyConversion)
- (NSArray<NSNumber *> *)toFloatsArray;
@end
@implementation NSData(MyConversion)
- (NSArray<NSNumber *> *)toFloatsArray {
NSInteger capacity = self.length/sizeof(float);
NSMutableArray<NSNumber *> *parsedNumbers = [[NSMutableArray alloc] initWithCapacity:capacity];
for(NSInteger i=0; i<capacity; i++) {
float aFloat;
[self getBytes:&aFloat range:NSMakeRange(i*sizeof(float), sizeof(float))];
[parsedNumbers addObject:@(aFloat)];
}
return parsedNumbers;
}
@end
,你可以使用它像這樣:
NSArray<NSNumber *> *numbers = [depthImageData toFloatsArray];
NSLog(@"%f", numbers[100].floatValue);
// or
NSLog(@"%@", numbers[100]);