Objective c iOS中的浮点数组不';t从NSArray返回所有值
我有一个子类uiview,在它的Objective c iOS中的浮点数组不';t从NSArray返回所有值,objective-c,arrays,nsarray,Objective C,Arrays,Nsarray,我有一个子类uiview,在它的initWithFrame:方法中,我将nsarray转换为float数组,如下所示: NSArray *numbersArray = @[[NSNumber numberWithFloat:0.2], [NSNumber numberWithFloat:.8], [NSNumber numberWithFloat:.3], [NSNumber numberWithFloat:.6], [NSNumber numberWithFloat:.2]]; data =
initWithFrame:
方法中,我将nsarray转换为float数组,如下所示:
NSArray *numbersArray = @[[NSNumber numberWithFloat:0.2], [NSNumber numberWithFloat:.8], [NSNumber numberWithFloat:.3], [NSNumber numberWithFloat:.6], [NSNumber numberWithFloat:.2]];
data = malloc(numbersArray.count * sizeof(float));
if (data == NULL) {
// handle error
}
[numbersArray enumerateObjectsWithOptions:NSEnumerationConcurrent usingBlock:^(NSNumber *number, NSUInteger idx, BOOL *stop) {
data[idx] = [number floatValue];
}];
//free(floatsArray);
for (int i = 0; i < sizeof (data) / sizeof (float); i++) {
NSLog(@"float value found at %i => %f", i, data[i]);
}
NSArray*numbersaray=@[[NSNumber numberWithFloat:0.2],[NSNumber numberWithFloat:.8],[NSNumber numberWithFloat:.3],[NSNumber numberWithFloat:.6],[NSNumber numberWithFloat:.2];
数据=malloc(numbersArray.count*sizeof(float));
如果(数据==NULL){
//处理错误
}
[NumberArray EnumerateObjects选项:NSEnumerationConcurrent usingBlock:^(NSNumber*number,NSU整数idx,BOOL*stop){
数据[idx]=[number floatValue];
}];
//自由(漂浮物);
对于(int i=0;i%f”,i,数据[i]);
}
如果您自己运行代码,您将看到它只从数组返回2个值。我在这里做错了什么?
sizeof(data)
不返回内存块的大小。它给出了指针的大小。谢谢!这就成功了。但是我如何计算浮点数组的大小呢?我以为那是做这件事的方法你必须跟踪它。在C语言中,仅仅从指针无法获得分配内存块的大小。这实际上是一个C语言的基本问题,以前已经讨论过很多次了。参见示例。