使用enumerateChildNodesWithName没有可见的@interface错误?

时间:2014-11-12 22:42:22

标签: ios objective-c sprite-kit

我过去运行过这个项目没有错误,当我尝试使用时突然出现红旗:

-(void)aimRocketLauncher:(CGPoint)location
{
__block CGPoint handleLocation;


[self enumerateChildNodesWithName:@"handle" usingBlock: ^(SKNode *node, BOOL *stop) {

    SKSpriteNode *handle = (SKSpriteNode *) node;

    handle.name = @"handle";

    if(CGRectContainsPoint(handle.frame, location)) {

        handle.position = location;
        handleLocation = location;
    }
}];

[self enumerateChildNodesWithName:@"rocketLauncher" usingBlock: ^(SKNode *node, BOOL *stop) {

    SKSpriteNode *rocketLauncher = (SKSpriteNode *) node;

    CGPoint launcherPosition = rocketLauncher.position;

    CGFloat slope = (handleLocation.y - launcherPosition.y) / (handleLocation.x - launcherPosition.x);
    //NSLog(@"%f", slope);

    CGFloat angle = tan(slope);
    angle *= angle;



    SKAction *rotate = [SKAction rotateToAngle:degToRad(angle + 90) duration:0.05];

    //        if (angle < 270 && angle < 180) {
    //            [rocketLauncher removeAllActions];
    //            [rocketLauncher runAction:rotate];
    //
    //        }





}];

}

不仅仅是这个,而是整个项目。我尝试撤消和清理项目。

确切错误:

ARC语义问题'GameScene'没有可见的@interface声明选择器'enumerateChildNodesWithName:usingBlock:'

代码的其余部分并不重要,因为我知道这有效。当我开始输入[self时,autocomplete会找到它,当我右键单击enumerateChildNodesWithName然后跳转到Definition时,它就在那里。这意味着正确导入Sprite Kit。我尝试关闭项目并重新启动Mac,但仍然没有发生任何事情。

我尝试在另一个类中使用此代码来查看会发生什么。同样的错误。

我在2个具有相似代码的不同项目中看到的唯一区别是,一个是在Xcode 5和Xcode 6中启动的。

我也不想使用任何sks文件。

·H

#import <SpriteKit/SpriteKit.h>
#import "Settings.h"
#import "TopHud.h"
#import "Hud.h"
#import "Menu.h"
#import <AVFoundation/AVFoundation.h>
#import <Foundation/Foundation.h>

@class Menu;
@class Settings;
@class TopHud;
@class Hud;

@interface GameScene : SKScene
{

}
@end

.m文件的顶部

#import "GameScene.h"
@implementation GameScene

我真的需要解决这个问题,因为它会杀死我相当大的整个项目。我正在独自努力。

1 个答案:

答案 0 :(得分:0)

我将部署目标从8更改为7.1