当我分析我的代码时,我得到以下逻辑错误:
消息'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);
答案 0 :(得分:2)
分析仪说的是
purchaseCell.lblValue
评估为nil
,因此无法为rectFrame
分配合理的值。你在purchaseCell
及其代码中的其他地方做了什么?
"接收器"表示正在接收"框架的对象"信息。
看起来可能有一些代码分支,其中单元格或其lblValue属性可能为零,并且分析器不喜欢它。 @ StilesCrisis'建议检查零值并返回(如果是)可能会为您清除(并防止任何可能的错误),如果您无法找到真正的原因。