Организация кода C в моем проекте Xcode - PullRequest
3 голосов
/ 08 июля 2010

Я хочу включить несколько прямых функций C в мой проект Objective C.Простые вещи вроде этого:

CGPoint vectorSum (CGPoint point1, CGPoint point2) {
    return CGPointMake(point1.x+point2.x, point1.y+point2.y);
}

Каков наилучший способ организовать вещи?

В частности, я заметил, что когда я иду, чтобы создать файл .c, он дает мне возможность создать файл заголовка.Это полезная вещь?

РЕДАКТИРОВАТЬ - добавив больше деталей:

Я могу заставить все работать, сказав Xcode создать Objective-C класс"VectorSum ", удаляя фактический заголовок класса и реализацию, определяя вышеупомянутую функцию vectorSum в файле реализации и имея файл заголовка, содержащий следующее:

#import <Foundation/Foundation.h>

CGPoint vectorSum (CGPoint point1, CGPoint point2);

Это работает, но кажется" неправильным ".,,почему я начинаю с создания объективного класса C, когда я действительно хочу код C?

Однако, если я пытаюсь сделать это с помощью опции Xcode для создания простого файла C, я не могу его получитьработать.Если я не импортирую основание, компилятор жалуется, что не знает, что такое CGPoint.И если я импортирую основание, я получаю миллионы ошибок компилятора, предположительно потому, что Xcode пытается прочитать основание как код C.

1 Ответ

1 голос
/ 10 июля 2010

Обычный код C не может импортировать платформы Objective C (Какао / Основа / и т. Д.).

Вместо этого включите соответствующие структуры на основе C ...

например

#include <ApplicationServices/ApplicationServices.h>

или

#include <CoreFoundation/CoreFoundation.h>

Xcode не предоставляет возможность добавить простой файл .m в проект, но вы можете просто добавить файл .c, а затем переименовать его в.m без проблем.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...