Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何定义只在objective-c框架中可见的方法和属性?_Objective C_Ios_Categories - Fatal编程技术网

如何定义只在objective-c框架中可见的方法和属性?

如何定义只在objective-c框架中可见的方法和属性?,objective-c,ios,categories,Objective C,Ios,Categories,我正在尝试编写一个objective-c框架,我希望方法和属性只在框架内可见。我知道我可以在实现文件中的类扩展名中定义它们,但是其他类将无法访问它们 我考虑的一种方法是定义一个类别,例如MyClass+Internals,并将该标题设置为私有。但是要公开MyClass.h头。我想知道是否有更好的方法。另外,我不确定您是否可以在一个类别中定义属性,我认为这只是方法。感谢您的建议或反馈。假设您有一个名为“Foo”的类,然后在“Foo_Framework.h”中创建: 然后,确保在@实现Foo之前导入

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


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

假设您有一个名为“Foo”的类,然后在“Foo_Framework.h”中创建:

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

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

如何做到这一部分“只是不让它在所述框架之外可用”?
@interface Foo()
@property ....;
- .... method ....
@end