我想我已经看到了这一点,但我找不到相关文档,因为我认为我不知道正确的术语。我需要知道如何编写一个仅在其他类中使用的特殊类,因此可以完全写在其他类的实现中。
基本上我需要一个专门的NSMutableArray,它可以做三件事:
但是,这就是事情,我只需要在一个类中使用这个SpecialNSArray。所以我想将声明和实现放在该类中,而不是放在单独的文件中。我相信我已经看到了这一切。有谁知道这叫什么,我怎么做呢?
答案 0 :(得分:4)
要执行此操作,只需将新类添加到要使用它的类的实现文件中。我认为这被称为私人课程。
假设你的类是MyClass,改进的数组是MyClass.m中的MyArray
@interface MyArray
{
}
@end
@implementation MyArray
@end
@implementation MyClass
@end
在这种情况下,MyArray上的额外方法只有在从MyClass调用时才会被编译器看到。
请注意,Objective C中没有任何私有,MyArray上的这些方法可以在程序中的任何位置从运行时调用,只是这些方法会在编译时发出警告。
答案 1 :(得分:3)
我认为你在NSMutableArray上描述了一个类别。
YourClass.m
@interface NSMutableArray : (YourClassExtentions)
@end
@implementation NSMutableArray : (YourClassExtentions)
@end
@implementation YourClass()
@end
您也可以在单独的m和h文件中创建类别,然后导入。
答案 2 :(得分:1)
您可以简单地将班级的@interface MyInternalClass ...
和@implementation MyInternalClass ...
代码段放在.m文件中,作为“公共”类。在.h中添加@class MyInternalClass;
行,以便在“public”类的实例变量中声明指向该类的指针。