如何通过在设置框架之前检查segmentedControl及其superview是否存在来保护此方法?
- (void)setSegmentedControlFrame {
self.segmentedControl.frame = CGRectMake(CGRectGetMinX(self.segmentedControl.superview.frame), CGRectGetMinY(self.segmentedControl.superview.frame), CGRectGetWidth(self.segmentedControl.superview.frame), CGRectGetHeight(self.segmentedControl.superview.frame));
}
答案 0 :(得分:0)
这样做
- (void)setSegmentedControlFrame {
if self.segmentedControl.isDescendantOfView(self.view)
{
self.segmentedControl.frame = CGRectMake(CGRectGetMinX(self.segmentedControl.superview.frame), CGRectGetMinY(self.segmentedControl.superview.frame), CGRectGetWidth(self.segmentedControl.superview.frame), CGRectGetHeight(self.segmentedControl.superview.frame));
}
}
答案 1 :(得分:0)
if ((self.segmentedControl) && (self.segmentedControl.superview)) {
// do something smart here.
}
内支架并非真正需要。 更具体一点:
if ((self.segmentedControl != null) && (self.segmentedControl.superview != null)) {
// do something smart here.
}
当&& amp;& amp;检查并评估为假,然后第二个不再被启用。在其他语言中,访问空对象更是一个问题,这个序列很重要。
这是你要求的吗?