ios - 没有 init 方法时如何正确子类化 SKNode?

标签 ios objective-c sprite-kit sknode

SKNode只提供+node方法。

如果你这样做:

+ (instancetype)node {
    CustomNode *body = [CustomNode node]; // infinite loop
}

如果你这样做:

+ (instancetype)node {
    CustomNode *body = [super node]; // instance of SKNode, not CustomNode
}

如何以可以覆盖构造函数的方式子类化一个只有便利构造函数的类?还是创建自己的 +customNode 方法是最佳实践?

最佳答案

没有人说您不能在 SKNode 子类上使用 [... alloc] init]。毕竟,SKNode 是 NSObject 的子类。 +node 只是一种方便的方法。

+ (instancetype)node {
    CustomNode *body = [[self alloc] init];
    return body;
}

这没有错。

关于ios - 没有 init 方法时如何正确子类化 SKNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20862294/

相关文章:

ios - NSException 类型的未捕获异常(连接似乎很好) - Wenderlich 教程

ios - 将 tapku 日历添加到 ios 应用程序

ios 快速解析 : how to collect pointer data

ios - 如何在巨大的 CollectionView 中使用 SDWebImage 或 AFNetworking 在磁盘上缓存图像?

ios - 优化 SpriteKit

ios - 如何在 iOS 中使用 GL_HALF_FLOAT_OES 类型的纹理?

iphone - 使用 DropBox SDK 的 iPhone 应用程序未调用 handOpenURL

ios - Objective-C:为什么我在尝试从 nsmutablearray 中删除对象时遇到异常?

ios - 带有 SpriteKit 的 UITableView

ios - 碰撞检测后显示结束屏幕