【问题标题】:Accessing an instance variable from another class -- can I use a class method?从另一个类访问实例变量——我可以使用类方法吗?
【发布时间】:2012-06-03 22:38:30
【问题描述】:

我需要从另一个类 (class2) 访问 class1 中的 NSMutableArray。我尝试的解决方案是在class1 中创建一个类方法并从class2 调用它。显然,这是不可能的,因为这是对类方法的限制。我无法弄清楚解决方案。我能做什么?

【问题讨论】:

    标签: objective-c instance-variables


    【解决方案1】:

    通常您通过属性公开所需的实例变量。

    此链接涵盖属性。

    http://cocoacast.com/?q=node/103

    一旦公开了正确的变量,只需将所需类的引用传递给给定的方法。

    【讨论】:

    • 谢谢。这解决了我的问题:) 我已经尝试了这些属性,但我不记得为什么我有错误。现在我再试一次并工作。对不起,“愚蠢的问题”
    • 没问题。如果您觉得这个答案最符合您的答案,请选择它作为正确答案:)
    【解决方案2】:

    毫不奇怪,您需要一个实例才能访问实例变量。如果该实例适合您的设计,您可以将其设为单例,或者将您递增的变量设为static 而不是 ivar,这样可以直接从类方法访问它。

    如果您需要从类方法访问多个实例,则需要为您的对象提供某种类型的注册表,例如通过键映射您的对象的NSDictionary

    【讨论】:

      【解决方案3】:

      将实例变量作为参数传递给类方法应该可以解决问题。 编辑:如果 class1 和 class2 只是实例,那么您将需要一个类变量。

      【讨论】:

        猜你喜欢
        • 2012-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-21
        • 2014-11-05
        • 2014-10-10
        相关资源
        最近更新 更多