Ошибка SIGABRT при запуске TTPhotoviewController в iPhone - PullRequest
0 голосов
/ 13 января 2010

Что ж, я создаю приложение для iPhone, которое содержит некоторые функции, такие как велосипедные маршруты и Photoviewer.

Для этих велосипедных маршрутов я использую API Cloudmade, а для PhotoViewer - контроллер TTPhotoview от Three20.

Эта карта маршрутов Cycle работает отлично, но я думаю, что она должна что-то делать с ошибками, которые я получаю.

Я опишу здесь 2 случая о том, что я пытался и какую проблему я получил.

Дело 1: Компиляция происходит неправильно и появляется следующая ошибка:

duplicate symbol _aatan2 in /Users/wesleycoppens/Documents/MooiWest/libs/Proj4/Device/libProj4.a(aasincos.o) and /Users/wesleycoppens/Documents/MooiWest/libs/route-me/Device/libMapView.a(aasincos.o)
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

Я получаю эту ошибку, когда пытаюсь добавить в флажки другого компоновщика флаг -all_load. Посмотрите на изображение ниже, как сейчас выглядят мои другие флаги компоновщика.

см. ссылку для изображения: http://i49.tinypic.com/262o7q1.png

Дело 2: Компиляция идет нормально, приложение работает в симуляторе отлично, но получает SIGABRT с устройством.

В этом случае я удалил флаг -all_load в своих флагах другого компоновщика. Теперь я не получаю никакой ошибки компиляции, но я получаю SIGABRT при нажатии на таблицу, которая ссылается на приложение для просмотра фотографий.

Я не уверен, правильно ли я ссылаюсь на Photoviewer, так что вот часть, где я нажимаю другой просмотр фотографий.

PhotoTest2Controller *photoViewController = [[PhotoTest2Controller alloc] init];
[self.navigationController pushViewController:photoViewController animated:YES];
[photoViewController release];

Также здесь есть еще один скриншот флагов компоновщика, как они определены в этом случае:

см. ссылку для изображения: http://i47.tinypic.com/vhuv0z.png

1 Ответ

1 голос
/ 11 августа 2010

наконец я нашел решение для этого. Вместо использования тега «-all_load» вы можете использовать «-force_load path_to_library / libXXX.a» во всех необходимых вам библиотеках, кроме той, в которой вы получаете ошибку дублирования. Это сработало для меня! Надеюсь, это поможет.

...