Если вы действительно хотите, чтобы функции были частными, вам нужно объявить их как static
. Чтобы устранить циклическую зависимость, одна должна быть объявлена до определения другой. Вот простой пример:
static void b(); /* forward declaration */
static void a()
{
if (foo)
b(); /* forward-declared, so we're ok */
}
static void b()
{
if (bar)
a(); /* already defined, so we're ok */
}
Это все действительный C, и поэтому, основываясь на комментарии OP, я предполагаю, что это также и ObjC.