iOS:消息'frame'的接收者为零

时间:2012-01-25 15:47:40

标签: ios logic frame cgrect

当我分析我的代码时,我得到以下逻辑错误:

消息'frame'的接收者是nil并返回一个'CGRect'类型的值,它将是垃圾。

这两行:

CGRect rectFrame = purchaseCell.lblValue.frame;
CGRect rectFrameBG = purchaseCell.lblValueBG.frame;

代码效果很好,但只是想弄清楚这是什么意思。我做错了吗?

编辑:这是完整的方法:

purchaseCell.lblHeader.font = [UIFont fontWithName:@"AvenirNextLTPro-Regular" size:16];
purchaseCell.lblHeader.text = curField.fieldName;
purchaseCell.lblValue.text = curField.fieldValue;
purchaseCell.lblValueBG.text = curField.fieldValue;
purchaseCell.lblValue.font = [UIFont fontWithName:@"AvenirNextLTPro-Regular" size:16];
purchaseCell.lblValue.backgroundColor = [UIColor clearColor];
purchaseCell.lblValueBG.textColor = [UIColor clearColor];
[purchaseCell.lblValueBG sizeToFit];
[purchaseCell.lblValue sizeToFit];
CGRect rectFrame = purchaseCell.lblValue.frame;
CGRect rectFrameBG = purchaseCell.lblValueBG.frame;
NSLog(@"RectFrame X:  %.2f", rectFrame.origin.x);

purchaseCell.lblValue.frame = CGRectMake(rectFrame.origin.x-rectFrame.size.width,rectFrame.origin.y, rectFrame.size.width+14, rectFrame.size.height);
frameSizeWidth = rectFrame.size.width;
purchaseCell.lblValueBG.frame = CGRectMake(rectFrameBG.origin.x-rectFrameBG.size.width,rectFrameBG.origin.y, rectFrameBG.size.width+14, rectFrameBG.size.height);

1 个答案:

答案 0 :(得分:2)

分析仪说的是

purchaseCell.lblValue

评估为nil,因此无法为rectFrame分配合理的值。你在purchaseCell及其代码中的其他地方做了什么?

"接收器"表示正在接收"框架的对象"信息。

看起来可能有一些代码分支,其中单元格或其lblValue属性可能为零,并且分析器不喜欢它。 @ StilesCrisis'建议检查零值并返回(如果是)可能会为您清除(并防止任何可能的错误),如果您无法找到真正的原因。