小编luc*_*nik的帖子

分配的值是XCode中的垃圾或未定义的逻辑错误

我正在将我们的iPhone应用程序更新为iOs4,我在代码中遇到了"函数调用中的传递参数未定义"的问题

for (i = 0; i < self.numberOfSegments; i++) {
        [self setWidth:round(width[i]) forSegmentAtIndex:i];
}
Run Code Online (Sandbox Code Playgroud)

这是公平的,宽度[i]尚未初始化.然而,更新代码(下面)给了我这个新错误,"分配的值是垃圾或未定义".读到这个我认为segWidth保留其作为垃圾的价值 - 这是正确的,如果是这样,我该如何清除它?

for (i = 0; i < self.numberOfSegments; i++) {
    float segWidth = (float)width[i];
    [self setWidth:round(segWidth) forSegmentAtIndex:i];
}
Run Code Online (Sandbox Code Playgroud)

-------------编辑------------------

谢谢回复人员.更多信息如下;

该方法的泛化版本在下面显示为someFunction.我删除了丑陋的演员,但仍然看到该行的"Assigned Value is Garbage or undefined"逻辑错误segWidth = width[i];

我同意值width [i]没有明确的初始化,我不确定这是否是我对基本的Obj-c float类型的理解不足或者我的赋值语法中是否存在逻辑缺陷?

- (void)someFunction
{
    unsigned int n = self.numberOfSegments;
    float width[n];

    for (i = 0; i < n; i++) {
       width[i] = someFloatValue;
    }

    ...    

    for (i = 0; i < self.numberOfSegments; i++) …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c

2
推荐指数
1
解决办法
2969
查看次数

标签 统计

iphone ×1

objective-c ×1