我对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类了吗?
有关这些的任何信息将受到广泛赞赏。
答案 0 :(得分:3)
这是因为场景的创建方式与以前的Xcode版本不同。现在,使用initWithSize:而不是使用initWithSize:在视图控制器中手动创建场景,而是使用unarchiveFromFile:方法解压缩场景,该方法来自模板(可能是GameViewController.m)。因此,initWithSize:不会被调用。你需要使用initWithCoder:而不是。
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
// stuff
}
return self;
}
就问题的第二部分而言,这就是它在Xcode 6中的表现。您仍然可以创建新文件,对于像类别/类似的东西,模板没有选项等等。