我正在尝试将我的代码转换为iOS 8项目,我需要一些解释如何修复此警告: "Convenience initializer missing a 'self' call to another initializer"
在这段代码上:
-(instancetype) initWithCoder:(NSCoder *)aDecoder // warning: Convenience initializer missing a 'self ' call to another initializer
{
if (self = [super initWithCoder:aDecoder]) // warning: convenience initializer should not invoke an initializer on 'super'
{
// some init stuff here
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
Cod*_*aFi 35
带有Xcode 6的新Clang运输通过NS_DESIGNATED_INITIALIZER宏启用编译器强制指定的初始化程序.当它在类声明中标记任何一个init-family方法时,所有其他初始值设定项都被视为"次要"(使用Apple的术语)初始值设定项.也就是说,他们应该互相呼叫指定的或辅助初始化程序,直到它们到达指定的初始化程序.
UIView没有标记为指定的初始化程序,所以在某处您已经将该类的另一个init方法声明为指定的初始化程序.因此,NSCoder的初始化程序将标记为辅助并生成警告.我已经提交了一个关于它的雷达(rdar:// 17559176),但在此之前,它可以通过指定-Wno-objc-designated-initializers或通过提供适当的诊断push-pop 来基于每个文件关闭-Wobjc-designated-initializers.
| 归档时间: |
|
| 查看次数: |
8940 次 |
| 最近记录: |