2009-11-04 4 views
3

Я новичок в программировании на iPhone, и я пытаюсь использовать CHDataStructures в своем проекте. Но я бегу на некоторые вопросы:Использование CHDataStructures.framework на iPhone

  1. Когда я непосредственно попытаться построить его сразу после загрузки я получаю сообщение об ошибке «Foundation/Foundation.h» нет такого файла или каталога. Активный SDK - «Использовать базовый SDK», а активная архитектура - x86_64. Я считаю, что я должен установить Active SDK на iPhone SDK, но он не указан там;

  2. В какой-то момент (я не помню, как) мне удалось настроить его, и я получил iPhone SDK (симулятор) в активном SDK, но когда я попытался его построить, я получил следующую ошибку: «target указывает тип продукта «com.apple.product-type.framework», но такого типа продукта для платформы «iphonesimulator» нет;

И теперь я застрял. Что я делаю не так?

Спасибо заранее, Нуну

ответ

3

CHDataStructures является основой, которая была написана для Mac. Рамки не используются на iPhone, вместо них используются статические библиотеки. Я бы предложил создать новый проект Cocoa Touch Static Library, а затем добавить все исходные файлы в эту статическую библиотеку. Ни один из исходных файлов для проекта не включает в себя Cocoa.h или другие заголовки, специфичные для Mac, поэтому вы можете получить эту статическую библиотеку, чтобы скомпилировать ее, не слишком много возиться.

Есть несколько хороших вопросов по созданию и использованию статических библиотек здесь, в том числе следующие:

Для примеров статических библиотек там, Я бы направил вас к проектам Three20 и Core Plot.


UPDATE: CHDataStructures теперь поддерживает как основы Mac и IOS статическую библиотеку.

+1

Мне кажется, что цель создания статической библиотеки для iPhone будет хорошим дополнением к проекту Xcode для моей структуры. Я посмотрю, смогу ли я найти какое-то время, чтобы добавить это - если кто-то хочет помочь, я с радостью принимаю вклады. :-) –

+0

Привет, Куинн, я просто попытался добавить цель Cocoa Touch к вашему проекту, и это не кажется тривиальным, поскольку некоторые классы полагаются на существование 'NSAllocateCollectable' (например,' CHDoublyLinkedList'), который iPhone не делает поддержка. Другие сообщения здесь, на SO, похоже, предполагают, что ваша библиотека действительно работает на iPhone, но для меня кажется, что она не без изменений в коде управления памятью. Я что-то пропускаю? –

+0

Должно быть довольно легко определить пользовательскую 'NSAllocateCollectable()' для статической библиотеки iPhone, которая просто делает malloc под ним, например 10.4, и 10.5, когда GC не включен. Это может быть просто код, который включен только в эту цель. Это такие проблемы, которые делают целесообразным включение цели для этого, поэтому людям не нужно изобретать велосипед, чтобы использовать CHDataStructures на iPhone. –

Смежные вопросы