Check If CGRect Null In Getter
Answer :
When you create an instance of your class, the _frame
instance variable is automatically initialized, even before the init
method is called. Since _frame
is a C-struct (CGRect
), its memory is cleared to all zeroes. This results in a CGRect
with all zero values.
CGRectNull
is a special, non-zero CGRect
. So your check using CGRectIsNull()
will never be true.
Using CGRectIsEmpty
is a more proper check for this.
Try
- (CGRect)frame { if (CGRectIsEmpty(_frame)) _frame = CGRectMake(0,0,60,60); return _frame; }
Here is an updated answer for Swift 4. You are able to simply use CGRect's isNull
boolean property to check for CGRectNull now:
let someRect = CGRect.null print(someRect.isNull) // true
Comments
Post a Comment