SKNode has a removeChild undocumented method which is called on parent object when deleting its child by removeFromParent method. Is it safe to override removeChild?
问问题
98 次
1 回答
3
可能是的,但不是。
问题是您不知道是否在所有情况下都会调用此方法。例如,我注意到一些 SK*Node 类将一些消息直接路由到底层 C++ 对象,而不是将消息传递给 SKNode 中的超级实现。
此外,我敢打赌,覆盖私有方法会构成使用私有 API 的情况,这可能会导致您的应用程序被禁止在 App Store 上发布。
从技术上讲,尽管尝试一下,看看它是否有效。它可能会。但是出于所有其他原因,您当然不应该这样做。
而是在您的覆盖中覆盖removeFromParent
和访问self.parent
,以防您需要对父母做某事。请注意,您必须在每个 SK*Node 子类中执行此操作。这是因为您不能覆盖类别中的方法,并且您不能将 SKNode 子类化并期望从其他 SKNode 直接子类(例如 SKSpriteNode)调用子类方法(因为它们与您的子类平行,而不是你的 SKNode 子类)。
于 2014-03-23T19:00:41.557 回答