Prevent subclassing of ASTextNode and ASImageNode

This commit is contained in:
Michael Schneider
2016-06-19 14:59:39 -07:00
parent 3384297c58
commit fc7cff333e
2 changed files with 20 additions and 0 deletions

View File

@@ -63,6 +63,16 @@ struct ASImageNodeDrawParameters {
#pragma mark - NSObject
+ (void)initialize
{
[super initialize];
if (self != [ASImageNode class]) {
// Prevent custom drawing in subclasses
ASDisplayNodeAssert(!ASSubclassOverridesClassSelector([ASImageNode class], self, @selector(displayWithParameters:isCancelled:)), @"Subclass %@ must not override displayWithParameters:isCancelled: method. Custom drawing in %@ subclass is not supported.", NSStringFromClass(self), NSStringFromClass([ASImageNode class]));
}
}
- (instancetype)init
{
if (!(self = [super init]))

View File

@@ -71,6 +71,16 @@ struct ASTextNodeDrawParameter {
#pragma mark - NSObject
+ (void)initialize
{
[super initialize];
if (self != [ASTextNode class]) {
// Prevent custom drawing in subclasses
ASDisplayNodeAssert(!ASSubclassOverridesClassSelector([ASTextNode class], self, @selector(drawRect:withParameters:isCancelled:isRasterizing:)), @"Subclass %@ must not override drawRect:withParameters:isCancelled:isRasterizing: method. Custom drawing in %@ subclass is not supported.", NSStringFromClass(self), NSStringFromClass([ASTextNode class]));
}
}
static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ];
- (instancetype)init