【发布时间】:2014-10-27 20:42:13
【问题描述】:
我正在使用下面的代码为子类 SKNode 对象创建一个方便的方法。这似乎工作正常。让我烦恼的是,SKNode 类参考明确指出 -init 符号仅适用于 iOS 8.0 及更高版本。我的应用程序的部署目标是 iOS 7.1。
+ (instancetype)postGameContent
{
return [[self alloc] init];
}
- (id)init
{
if (self = [super init]) {
[self setupContent];
} return self;
}
我担心我的代码中的 init 方法被转移到 iOS7.1 的继承链上,绕过了由 SKNode 自己的便利方法(+节点)或初始化程序(-init)初始化的任何内容。根据 iOS 版本号,我的代码是否有可能导致节点(甚至对象)有所不同?与此相关,我写的时候:
return [[self alloc] init];
Xcode 6 自动补全给“init”一个红色删除线,但没有解释原因 (screenshot)。这是因为潜在的版本问题,还是其他原因?
【问题讨论】:
-
必须有一条带有红色删除线的消息。你也能发一下吗?我认为它与 init 方法无关,而可能是对 self 的引用。
-
谢谢,我提供了截图:imgur.com/nGFEJIl
-
我非常怀疑这会带来什么问题,很可能文档是不正确的。
-
是的,也许这让我感到不快。该代码按预期工作。不过,有没有办法找出来?
标签: objective-c sprite-kit xcode6 sknode