0

我正在开发一款游戏,我想知道是否可以发送信号。

在第一关,玩家需要 3 件物品才能获胜

在第二关,玩家需要 5 件物品才能获胜

是否可以向特定对象抛出诸如“ItemTaken”之类的信号

  1. 知道水平
  2. 处理信号

  3. 所以它可以计算玩家是否达到了下一个级别

(我已经简化了事情,但有很多信号)

4

2 回答 2

1

就内置 API 而言,您可以查看NSNotificationCenter. 文档非常简单:您可以注册以观察通知,并发布由字符串标识的任意通知。所以你可以很容易地写出这样的东西:

[[NSNotificationCenter defaultCenter] postNotificationName:MyItemTakenNotification object:theTakenItem];

如果你想要更复杂的东西,你可以看看Reactive Cocoa。它是一个以更复杂的方式发送和响应信号的框架。(但是,我自己从未使用过它。)

于 2013-03-11T19:10:19.403 回答
0

有几种不同的方法。最简单的方法之一是使用NSNotifications单例对象。

创建单例以侦听通知并在通知进入时对其进行处理。收到通知时,它将调用选择器方法:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(processItem)
                                             name:@"kItemTaken"
                                           object:nil];

并让应用在事件发生时发送通知:

[[NSNotificationCenter defaultCenter] postNotificationName:@"kItemTaken" object:nil];
于 2013-03-11T19:08:54.600 回答