Sending nil to CGPoint type parameter

objective-c

Solution

`CGPoint` is a C `struct`, you cannot pass `nil` for it. You can create a separate method that does not take the unnecessary `CGPoint`, and get rid of your `if` statement, like this:

- (void)placeView:(UIView*)theView withCenterIn:(CGPoint)centerPoint{
    //set that view to the specified point
}

- (void)placeView:(UIView*)theView {
    //set a random center point
}

If you insist on keeping one method, you could designate one point as "special" (say, `CGMakePoint(CGFLOAT_MAX, CGFLOAT_MAX)`), wrap it in a `#define`, and use instead of `nil`.

Yet another solution would be to wrap your `CGPoint` in `NSValue`:

NSValue *v = [NSValue withPoint:CGMakePoint(12, 34)];
CGPoint p = [v pointValue];

Problem

Suppose I have this method: ``` - (void)placeView:(UIView*)theView withCenterIn:(CGPoint)centerPoint; ``` So I pass the view and a point to te the view's center. But it happens that I do not need to specify the center, just the view. Passing "nil" leads to error. Please, suggest how to skip passing the center point. Keep in mind that I need to use that method like this: ``` - (void)placeView:(UIView*)theView withCenterIn:(CGPoint)centerPoint{ if(centerPoint == nil){//and I understand that it's a wrong comparison, as I cannot pass "nil" to CGPoint //set a random center point } else{ //set that view to the specified point } } ``` Thanks in advance

Original source