Использование CHDataStructures.framework на iPhone

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

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

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

А теперь я застрял. Что я делаю неправильно?

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


person nununo    schedule 04.11.2009    source источник


Ответы (1)


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

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

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


ОБНОВЛЕНИЕ. CHDataStructures теперь поддерживает как платформу Mac, так и статическую библиотеку iOS.

person Brad Larson    schedule 04.11.2009
comment
Мне пришло в голову, что цель по созданию статической библиотеки для iPhone была бы хорошим дополнением к проекту Xcode для моего фреймворка. Я посмотрю, смогу ли я найти время, чтобы добавить это - если кто-то хочет помочь, я с радостью принимаю пожертвования. :-) - person Quinn Taylor; 04.11.2009
comment
Привет, Куинн, я просто попытался добавить цель Cocoa Touch в ваш проект, и это не кажется тривиальным, поскольку некоторые классы полагаются на существование NSAllocateCollectable (например, CHDoublyLinkedList), который iPhone не поддерживает. Другие сообщения здесь, на SO, похоже, предполагают, что ваша библиотека действительно работает на iPhone, но мне кажется, что это не без изменений в коде управления памятью. Я что-то не замечаю? - person Ole Begemann; 04.11.2009
comment
Должно быть довольно легко определить пользовательский NSAllocateCollectable() для статической библиотеки iPhone, которая просто выполняет malloc внизу, как это делает 10.4, и 10.5, когда GC не включен. Это может быть просто код, который включен только в эту цель. Из-за подобных проблем кажется целесообразным включить цель для этого, поэтому людям не нужно изобретать велосипед только для того, чтобы использовать CHDataStructures на iPhone. - person Quinn Taylor; 04.11.2009
comment
Хорошо, я попробую это сделать. Я впервые собираюсь сделать что-то подобное, поэтому я не могу ничего обещать. - person Ole Begemann; 04.11.2009
comment
Не могли бы вы держать меня в курсе статуса этого? Большое спасибо. - person nununo; 08.11.2009
comment
Привет, нунуно, я работал с Куинном, чтобы включить в код статическую библиотеку и цель модульного тестирования для iPhone. Я уверен, что вы можете ожидать обновления, которое будет включать все это в репозиторий в ближайшее время. - person Ole Begemann; 09.11.2009
comment
Приносим извинения за задержку, теперь это сделано и зафиксировано в репозитории. Оле немного помог, и теперь у нас даже есть модульные тесты, работающие на самом iPhone. Пожалуйста, дайте мне знать, если у вас возникнут проблемы. Спасибо! - person Quinn Taylor; 10.12.2009
comment
@Quinn Taylor, Привет, Куинн, загрузка CHDataStructures не работает. Пожалуйста, посмотрите! - person Jack; 03.04.2011