Now that CGRectMake , CGPointMake, CGSizeMake, etc. has been removed in Swift 3.0, is there any way to automatically update all initializations like from CGRectMake(0,0,w,h) to CGRect(x:0,y:0,width:w,height:h)
. Manual process is.. quite a pain.
Not sure why Apple don't auto convert this when I convert the code to Current Swift Syntax...
Apple actually does provide this feature. All you have to do is go to:
Edit > Convert > To Latest Swift Syntax...
And then follow the onscreen prompts.
This will solve your syntax issues and you won't have to make new functions for all of the various removed functions.
Short answer: don't do it. Don't let Apple boss you around. I hate
CGRect(x:y:width:height:)
. I've filed a bug on it. I think the initializer should beCGRect(_:_:_:_:)
, just likeCGRectMake
. I've defined an extension on CGRect that supplies it, and plop that extension into every single project the instant I start.That way, all I have to do is change "CGRectMake" to "CGRect" everywhere, and I'm done.
The simplest solution is probably just to redefine the functions Apple took away. Example:
Put that in your module and all calls to
CGRectMake
will work again.