我对SpriteKit相对较新,自从升级到Xcode 6以来遇到了一些问题。
最初,当我创建项目时,我将任何方法输入到"initWithSize"中。
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
}
return self;
}
在 Xcode 6 中启动项目时,这似乎不再是默认设置,而是替换为:
-(void)didMoveToView:(SKView *)view {}
当尝试应用 initwithsize 时,它只是不起作用,或者不加载我放在里面的精灵节点。即使在尝试创建新文件时,我也不再看到 .m 和 .h 文件。我有其他选项可供选择,其中没有一个是 .h/.m。
所以1) 我如何继续像以前使用 initwithsize 一样编码?2)创建新文件有什么关系,我可以不再创建.m/.h类了吗?
有关这些的任何信息将不胜感激。
这是因为场景的创建方式与以前的 Xcode 版本不同。现在,场景不是使用 initWithSize: 在视图控制器中手动创建的,而是使用模板中附带的方法 unarchiveFromFile: (可能是 GameViewController.m)取消存档。因此,initWithSize: 不会被调用。你需要使用 initWithCoder: 代替。
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
// stuff
}
return self;
}
就您问题的第二部分而言,这就是Xcode 6中的情况。您仍然可以创建新文件,只是不再有类别/等内容的模板选项。