Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c iOS中的浮点数组不';t从NSArray返回所有值_Objective C_Arrays_Nsarray - Fatal编程技术网

Objective c iOS中的浮点数组不';t从NSArray返回所有值

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 =

我有一个子类uiview,在它的
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语言的基本问题,以前已经讨论过很多次了。参见示例。