Добавьте функцию глобально для использования в приложении iPhone - PullRequest
1 голос
/ 29 декабря 2010

Я хочу добавить простую функцию в центральное место, чтобы я мог использовать ее без необходимости включать заголовочные файлы снова и снова. Как мне это сделать?

Рассмотрим функцию

void foo() {
    printf("Bar");
}

Я попытался добавить это в файл foo.h, а затем включить его в файл prefix.pch. Но происходит ошибка компиляции с повторяющимся символом.

Ответы [ 3 ]

2 голосов
/ 29 декабря 2010
Заголовок

(foo.h):

void foo();

файл реализации (foo.m)

void foo() {
// blah
} 

Вставьте свой файл foo.h в PCH и все готово.

2 голосов
/ 29 декабря 2010

Вам необходимо использовать защиту включения, как это:

#ifndef FOO_H
#define FOO_H

void foo(); //declaration

#endif

И в Foo.m:

void foo() {
   printf("Bar");
}

Или, что еще проще, вы можете просто использовать #importдиректива:

#import "Foo.h"

Если вы сделали все вышеперечисленное, то единственный способ, которым это могло бы произойти, это если вы явно объявили новую функцию с тем же именем в другом файле

0 голосов
/ 29 декабря 2010

Включите вашу функцию в отдельный класс.
И включите заголовок этого класса во все ваши классы.

...