Ios 分段控件及其superview存在
在设置帧之前,如何通过检查segmentedControl及其superview是否存在来保护此方法Ios 分段控件及其superview存在,ios,objective-c,uisegmentedcontrol,segment,superview,Ios,Objective C,Uisegmentedcontrol,Segment,Superview,在设置帧之前,如何通过检查segmentedControl及其superview是否存在来保护此方法 - (void)setSegmentedControlFrame { self.segmentedControl.frame = CGRectMake(CGRectGetMinX(self.segmentedControl.superview.frame), CGRectGetMinY(self.segmentedControl.superview.frame), CGRectGetWi
- (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));
}
你喜欢这样吗
- (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));
}
}
你喜欢这样吗
- (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));
}
}
实际上并不需要内支架。
更具体地说:
if ((self.segmentedControl != null) && (self.segmentedControl.superview != null)) {
// do something smart here.
}
当&&的第一个条件被选中并计算为false时,第二个条件将不再被超越。在其他语言中,访问空对象是一个更大的问题,这个序列很重要
这是你要的吗
实际上并不需要内支架。
更具体地说:
if ((self.segmentedControl != null) && (self.segmentedControl.superview != null)) {
// do something smart here.
}
当&&的第一个条件被选中并计算为false时,第二个条件将不再被超越。在其他语言中,访问空对象是一个更大的问题,这个序列很重要
这是你要的吗 这将在objective-c中起作用,但不会明确检查self.segmentedControl是否为空。它之所以有效,是因为向null发送任何方法都会分别返回null、0或false。因此,当self.segementedControl为null时,将不会执行赋值。但是,我怀疑这是否被认为是干净的代码。确切地说,这是更干净、更好的代码。这在objective-c中可以工作,但不能明确地检查self.segmentedControl是否为null。它之所以有效,是因为向null发送任何方法都会分别返回null、0或false。因此,当self.segementedControl为null时,将不会执行赋值。然而,我怀疑这是否被认为是干净的代码。确切地说,这是更干净、更好的代码。