当没有替代方法时,禁止对弃用方法发出警告

时间:2013-12-13 10:31:47

标签: ios objective-c xcode

我在项目中实现了这个自定义类: https://github.com/wimagguc/ios-custom-alertview

但Xcode发出警告称“initWithParentView”已被弃用。

- (id)init
{
    return [self initWithParentView:NULL];
}

我无法找到这种方法的替代方案,而且这个课程非常出色。有人可以告诉我如何抑制此警告或告诉我“initWithParentView”的替代方法吗?

4 个答案:

答案 0 :(得分:3)

请阅读更改说明,清楚地说使用init方法

编辑:因为它在无限循环中使用[super init]而不是[self init]

- (id)init
{
   // return [self init]; 
      return [super init];
}

答案 1 :(得分:3)

看起来开发人员将此标记为已弃用,并建议使用init方法。您可以编辑第三方库以删除此属性或禁止它。也许将initWithParentView的内容移动到init中可以更好地修复库。

/*!
 DEPRECATED: Use the [CustomIOS7AlertView init] method without passing a parent view.
 */
- (id)initWithParentView: (UIView *)_parentView __attribute__ ((deprecated));

答案 2 :(得分:1)

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (void) methodUsingDeprecatedStuff {
    //use deprecated stuff
}
#pragma clang diagnostic pop

这应该压制它。

答案 3 :(得分:1)

嗯,班级的* .h告诉你该怎么做

  

/ *! DEPRECATED:使用[CustomIOS7AlertView init]方法而不传递父视图。 * /

因此,如果您要覆盖自定义类,请使用

[self init];

否则使用

[[CustomIOS7AlertView alloc] init]