@property (unsafe_unretained,nonatomic) id<SceneDelegate> delegate;
它在xcode 5上运行正常,但它在xcode 6.1上给出了这个错误
Error: Property type 'id<SceneDelegate>' is incompatible with type 'id<SKSceneDelegate>' inherited from 'SKScene'
这是什么意思?
增加:
开始于scene.h
@protocol SceneDelegate <NSObject>
- (void) eventStart;
@end
@interface Scene : SKScene<SKPhysicsContactDelegate>
@property (unsafe_unretained,nonatomic) id<SceneDelegate> delegate;
viewController.h
#import "Scene.h"
#import <AVFoundation/AVFoundation.h>
@interface ViewController : UIViewController<SceneDelegate, AVAudioPlayerDelegate>
viewController.m
scene.delegate = self;
所有这些行包含SceneDelegate。
答案 0 :(得分:1)
这意味着SKScene already has a property of the same name:delegate
您正在尝试使用不同的协议重新声明该属性:SceneDelegate
而不是SKSceneDelegate
。
因此,要么您想使用delegate属性,在这种情况下您不需要声明该属性,只需将SKSceneDelegate对象分配给delegate
属性即可。例如:
self.delegate = mySceneDelegateObject;
如果delegate
是您创建的实际协议,则使用其他名称而不是SceneDelegate
(并考虑重命名协议,因为它很容易与SKSceneDelegate
混淆)。