nsnotification在skscene中不起作用

时间:2014-06-28 02:55:47

标签: sprite-kit nsnotification skscene

我正在写一个精灵套装游戏,我在游戏中购买应用程序。我实现了

在文件IAPHelper.m中购买应用程序(IAPHelper.m是NSObject的子类),如果

购买成功后,会发布一个nsnotification,代码如下:

- (void)completeTransaction:(SKPaymentTransaction *)transaction {
NSLog(@"completeTransaction...");

[self provideContentForProductIdentifier:transaction.payment.productIdentifier];

}

- (void)provideContentForProductIdentifier:(NSString *)productIdentifier {
NSLog(@"post a notification");

[[NSNotificationCenter defaultCenter] postNotificationName:IAPHelperProductPurchasedNotification object:productIdentifier     userInfo:nil];

 }

在MyScene.m(MyScene.m是SKScene的子类)中,我为通知添加了一个观察者:

   -(id)initWithSize:(CGSize)size {    
     if (self = [super initWithSize:size]) {
    /* Setup your scene here */
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ok:) name:IAPHelperProductPurchasedNotification object:nil];

       }
    return self;

    }
  - (void)ok:(NSNotification *)notification {
  NSLog(@"Ok, I got it");

     }

我想要做的是IAPHelper.m发布通知,MyScene.m收到它并回复它。但结果是MyScene.m似乎没有收到通知,因此没有收到代码

    - (void)ok:(NSNotification *)notification {
    NSLog(@"Ok, I got it");
     }

未被调用。但如果我把观察者放在我的ViewController.m(UIViewController的子类)中,它就可以了。我的问题是:skscene可以从任何对象接收通知吗?如果可以的话,如何实现它。

非常感谢任何人都可以帮我解决这个问题。

0 个答案:

没有答案