为什么没有设置contactDelegate?

时间:2014-02-06 12:26:57

标签: ios sprite-kit skphysicsbody

我从

行收到以下警告
self.physicsWorld.contactDelegate = self;

分配给' id'来自不兼容的类型' PlayLevel * __ strong'

-(id)initWithSize:(CGSize)size level:(int)level{
    if (self = [super initWithSize:size]) {
        _level = level;
        self.physicsWorld.gravity = CGVectorMake(0,0);
        self.physicsWorld.contactDelegate = self;

完全不确定导致它的原因。 这就是我的标题:

#import <SpriteKit/SpriteKit.h>

@interface PlayLevel : SKScene

-(id)initWithSize:(CGSize)size level:(int)level;

@end

任何想法导致它的原因是什么?我需要一个contactDelegate。谢谢!

3 个答案:

答案 0 :(得分:1)

您必须在头文件中添加委托引用。例如,如果我们使用UINavigationController个委托,我们会在头文件中添加<UINavigationControllerDelegate>。类似的,你必须添加联系代表

答案 1 :(得分:1)

您应该在类接口(内部&lt;&gt;)上声明您的类实现委托。

答案 2 :(得分:0)

在您声明PlayLevel扩展SKScene的标题中,您还需要声明它实现SKContactDelegate接口,如下所示:

@interface PlayLevel : SKScene <SKPhysicsContactDelegate>