нераспознанный селектор отправлен экземпляру в статическую библиотеку, несмотря на флаг ObjC

Я получаю ошибку времени выполнения в своем приложении:

2011-05-17 09:42:31.124 rxsync[67464:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSMutableURLRequest setHTTPBodyWithFormMultipartValues:fileNames:contentTypes:usingBoundary:]: unrecognized selector sent to instance 0x4e3cd90'

Этот метод, NSMutableURLRequest setHTTPBodyWithFormMultipartValues: fileNames: contentTypes: usingBoundary:], определяется статической библиотекой, которая является частью моего .xcworkspace.

Вот что я проверил до сих пор:

  1. Статическая библиотека включена в мой этап Связать двоичный файл с библиотеками.
  2. У меня есть ObjC в других флагах компоновщика (OTHER_LDFLAGS = -ObjC) в моем приложении. (На самом деле он есть и в моей статической библиотеке, так как он основан на том же файле xcconfig.)
  3. Подпись в моем файле .h и .m одинакова.
  4. Статическая библиотека определенно была перестроена.
  5. Я проверил, что объект, которому я отправляю сообщение, действителен.

Какие возможности я упускаю?

Я использую Xcode 4.0.2. Это цель iPhone.


person Steven Fisher    schedule 17.05.2011    source источник


Ответы (1)


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

person thbonk    schedule 17.05.2011
comment
Это исправило это. Спасибо. Я видел ссылки на это, но думал, что это применимо только к Xcode 3. :) - person Steven Fisher; 17.05.2011
comment
Это тоже решило мою проблему. Откуда мы должны были это знать? - person Ant; 06.11.2012
comment
Я столкнулся с этой проблемой некоторое время назад и искал в документации по компилятору/компоновщику. Мне потребовалось некоторое время, чтобы решить эту проблему.... - person thbonk; 19.11.2012