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

Popular posts from this blog

Chemistry - Bond Angles In NH3 And NCl3

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?