I'm getting the compile error:
error: convenience initializer missing a 'self' call to another initializer [-Werror,-Wobjc-designated-initializers]
Compile-checked designated initializers might be a good thing, but if I don't want deal with that right now, how can I turn this off?
Method 1
In your project:
-Wno-objc-designated-initializers
.You can also do some combination of this and
-Wobjc-designated-initializers
on a per file basis or with clang diagnostic pushes and pops (cf. @bandejapaisa's "Method 3" answer below).Method 2
This method allows you to switch back and forth between Xcode 5 & 6, and also provides you a reminder to fix the designated initializer stuff.
For iOS development, put this in your
.pch
(precompiled header) file:The analog to
__IPHONE_8_0
for OS X 10.10 is__MAC_10_10
.Why?
If you are interested in why these messages exist, you can check out this SO answer or these Apple docs.
Following on from Clay's answer..
Method 3
You might want to suppress the warning on one occurrence, not all of them:
EDIT: However, I've only actually used this once myself. I find it the same amount (or a little more) effort just to do it properly if it's a single case. So flag up your constructor with NS_DESIGNATED_INITIALIZER. And if it then complains about the init method not being overridden add an init method to your header with NS_UNAVAILABLE.