如果两个方法相互调用并且我不想在头文件中公开其中一个,我该怎么办?

Tha*_*nks 0 objective-c

我有两种方法-a和-b.-a有时会调用-b,而-b有时会调用-a.这两种方法都是私有的,不是从外部调用的.

但我不得不在.h文件中公开其中一个,因为否则编译器会疯狂并对其中任何一个发出警告.

针对该问题,是否有任何有效且良好实践的解决方案?

Chu*_*uck 7

传统上,你要做的是定义一个类别(类似于@interface MyClass (MyClass_Private)实现文件中声明私有方法的东西.Apple最近引入了一个名为类扩展的功能,用于这个特定情况.它基本上是一个类别的特化,但是该类必须在首次定义时实现这些方法.它看起来像:

@interface MyObject ()
    - (void)setNumber:(NSNumber *)newNumber;
@end
Run Code Online (Sandbox Code Playgroud)