gpt4 book ai didi

ios - "Convenience initializer missing a ' self ' call to another initializer"

转载 作者:IT王子 更新时间:2023-10-29 08:08:17 26 4
gpt4 key购买 nike

我正在尝试将我的代码转换为 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;
}

最佳答案

Xcode 6 附带的新 Clang 通过 NS_DESIGNATED_INITIALIZER 宏启用编译器强制指定的初始化程序。当它在类的声明中标记任何一个 init-family 方法时,所有其他初始化程序都被视为“次要”(使用 Apple 的术语)初始化程序。也就是说,它们应该调用另一个指定的或次要的初始化程序,直到他们到达指定的初始化程序。

UIView 没有将任何内容标记为指定的初始值设定项,因此您在某个地方声明了该类的另一个 init 方法作为指定的初始值设定项。因此,NSCoder 的初始化程序被标记为次要的并生成警告。我已经提交了一个关于它的雷达 (rdar://17559176),但在那之前可以通过指定 -Wno-objc-designated-initializers 或通过使用 -Wobjc-designated-initializers 提供适当的诊断 push-pop。

关于ios - "Convenience initializer missing a ' self ' call to another initializer",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24458608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com