【问题标题】:How to define methods and properties only visible within an objective-c framework?如何定义仅在 Objective-C 框架中可见的方法和属性?
【发布时间】:2012-10-24 21:50:49
【问题描述】:

我正在尝试编写一个objective-c 框架,并且我希望方法和属性仅在框架内可见。我知道我可以在实现文件内的类扩展中定义它们,但是其他类将无法访问它们。

我想这样做的一种方法是定义一个类别,例如 MyClass+Internals 并将该标题设为私有。但将 MyClass.h 标头公开。我想知道是否有更好的方法来做到这一点。另外,我不确定您是否可以在我认为只是方法的类别中定义属性。感谢您的任何建议或反馈。

【问题讨论】:

    标签: objective-c ios categories


    【解决方案1】:

    假设你有一个名为“Foo”的类,那么在“Foo_Framework.h”中,创建:

    @interface Foo()
    @property ....;
    - .... method ....
    @end
    

    然后,确保在@implementation Foo之前导入了“Foo_Framework.h”。这将导致类 Foo 使用在所述头文件中找到的扩展接口进行编译。然后可以在整个框架中使用该标头。只是不要让它在上述框架之外可用。

    您不能在类别中声明属性(合成的)是正确的。这是创建类扩展的主要动机之一,上面就是一个例子。

    【讨论】:

    • 如何做这部分“只是不要让它在所述框架之外可用”?
    猜你喜欢
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多