码迷,mamicode.com
首页 > 其他好文 > 详细

关于__has_attribute的使用

时间:2015-06-06 16:46:04      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

在开源代码中我们经常看到如下的代码

#ifndef ASDISPLAYNODE_REQUIRES_SUPER
#if __has_attribute(objc_requires_super)
#define ASDISPLAYNODE_REQUIRES_SUPER __attribute__((objc_requires_super))
#else
#define ASDISPLAYNODE_REQUIRES_SUPER
#endif
#endif


一直很疑惑

__attribute__((objc_requires_super))

是干嘛用的,今天特地查了下,官网解释如下:

Some Objective-C classes allow a subclass to override a particular method in a parent class but expect that the overriding method also calls the overridden method in the parent class. For these cases, we provide an attribute to designate that a method requires a “call to super” in the overriding method in the subclass.

简单来说就是子类继承父类的某个方法时,如果在父类的该方法后面加了该属性,子类中如果没有调用父类的super方法,编译器则会有告警。

如下图:

技术分享

更多的相关介绍见Clang官网介绍


关于__has_attribute的使用

标签:

原文地址:http://my.oschina.net/u/734027/blog/425676

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!