Objective c 知道谁叫单身汉的方法-目标C

Objective c 知道谁叫单身汉的方法-目标C,objective-c,singleton,Objective C,Singleton,我正在设计一款具有多个关卡的游戏。我有一个CCLayer,它被定义为一个单例(称为MasterScene),在这里我处理暂停页面、过渡页面、玩家的得分横幅,。。。所有的东西都是所有层次的共同点。 因此,在每个级别中,当用户按下暂停按钮时,会调用singleton以显示与暂停页面对应的CClayer。我的问题是,我想知道是谁将单例(哪个级别)称为t。有办法吗? 谢谢在不了解更多应用程序架构的情况下,我建议三种可能的方法: 将级别号(或指向级别对象的指针,或其他)作为参数传递给singleton的方

我正在设计一款具有多个关卡的游戏。我有一个CCLayer,它被定义为一个单例(称为MasterScene),在这里我处理暂停页面、过渡页面、玩家的得分横幅,。。。所有的东西都是所有层次的共同点。 因此,在每个级别中,当用户按下暂停按钮时,会调用singleton以显示与暂停页面对应的CClayer。我的问题是,我想知道是谁将单例(哪个级别)称为t。有办法吗?
谢谢

在不了解更多应用程序架构的情况下,我建议三种可能的方法:

  • 将级别号(或指向级别对象的指针,或其他)作为参数传递给singleton的方法
  • 让对象跟踪哪个级别是当前级别,以便它已经知道。(显然,这假设只有当前级别可以调用这些方法。但我不确定为什么多个级别都有可用的暂停按钮。)
  • 根本不要将此对象设为单体。为每个级别创建一个实例。是否确实存在此对象需要跟踪的应用程序全局状态?如果您使用MasterScene来封装行为,而不是全局状态,那么拥有该类的多个实例并不会真正损害任何东西(或消耗大量设备资源)

  • 在不了解更多应用程序架构的情况下,我建议三种可能的方法:

  • 将级别号(或指向级别对象的指针,或其他)作为参数传递给singleton的方法
  • 让对象跟踪哪个级别是当前级别,以便它已经知道。(显然,这假设只有当前级别可以调用这些方法。但我不确定为什么多个级别都有可用的暂停按钮。)
  • 根本不要将此对象设为单体。为每个级别创建一个实例。是否确实存在此对象需要跟踪的应用程序全局状态?如果您使用MasterScene来封装行为,而不是全局状态,那么拥有该类的多个实例并不会真正损害任何东西(或消耗大量设备资源)

  • 没有通用的方法可以按照您要求的方式定位消息源


    但是,你的应用程序可能会有另外的架构来解决这个问题,我鼓励你考虑一下。你所描述的听起来像是一堆相互依赖的类。你所有的关卡都意识到并使用了这个主场景单体,现在你想让单体也意识到每个关卡?应用程序的每一部分都不需要知道其他部分。

    没有通用的方法可以按照您要求的方式找到消息源


    但是,你的应用程序可能会有另外的架构来解决这个问题,我鼓励你考虑一下。你所描述的听起来像是一堆相互依赖的类。你所有的关卡都意识到并使用了这个主场景单体,现在你想让单体也意识到每个关卡?应用程序的每一部分都不需要知道其他部分。

    您可以将其作为参数传递,例如

    @implementation Level30
    -(void) pause;
    {
        [[MasterScene getSingleton] pauseWithLevel:self];
    }
    @end
    

    你可以把它作为一个参数传入,例如

    @implementation Level30
    -(void) pause;
    {
        [[MasterScene getSingleton] pauseWithLevel:self];
    }
    @end
    

    将级别号作为参数传递可能是最好的选择(这很明显,我应该跳出框框思考)。我更喜欢singleton方法,而不是将Pause页面作为子页面添加,因为Pause页面必须在当前级别上设置变量。我只是不喜欢孩子们告诉父母该做什么。。。非常感谢。将级别号作为参数传递可能是最好的选择(很明显,我应该跳出框框思考)。我更喜欢singleton方法,而不是将Pause页面作为子页面添加,因为Pause页面必须在当前级别上设置变量。我只是不喜欢孩子们告诉父母该做什么。。。谢谢。