attribute((objc_subclassing_restricted))
標(biāo)識被修飾的類不能被其他類繼承弓千。
通常寫在.h文件中類的聲明前 如:
attribute((objc_subclassing_restricted))
@interface TestObject : NSObject
@property (nonatomic, strong) NSObject *object;
@property (nonatomic, assign) NSInteger age;
@end
attribute((objc_requires_super ))
標(biāo)識子類不許調(diào)用被修飾的方法super板祝。
通常寫在方法名后邊 如:
@interface TestObject : NSObject
- (void)testMethod attribute((objc_requires_super));
@end
constructor / destructor
constructor代表main函數(shù)執(zhí)行前可以做的一些操作,destructor是main之后可以做的一些事兒
如 attribute((constructor(101)))
需要注意的是constructor中是優(yōu)先級越低執(zhí)行順序越高,而destructor是優(yōu)先級越高執(zhí)行順序越高育拨。
overloadable
該屬性允許定義多個同名但是參數(shù)不同類型或者個數(shù)的函數(shù)谨履,類似于C++的函數(shù)重載。
attribute((overloadable)) void testMethod(int age) {}
attribute((overloadable)) void testMethod(NSString *name) {} attribute((overloadable)) void testMethod(BOOL gender) {}
objc_runtime_name
修改類的名字熬丧,并且不受命名規(guī)則限制