stringByAppendingString ноль ошибка аргумента в альбомной ориентации, но не в портретной - PullRequest
0 голосов
/ 21 марта 2012

Для следующего кода в приложении для iPad:

NSString *urlString = @"http://www.domain.com/file.xml";
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:urlString]];
[request startSynchronous];

Я получаю ошибку аргумента stringByAppendingString nil.Проблема в том, что эта ошибка возникает только при запуске приложения в альбомной, а не в горизонтальной ориентации.

Не уверен, что это актуально, но ошибка выдается из основного потока, в то время как приведенный выше код выполняется в другом потоке.

Где мне искать здесь ошибки?Я начал с охоты на случаи, когда можно использовать stringByAppendingString, но просто не могу их найти (это не значит, что их там нет - я просто не понимаю, как это используется за кулисами).Нет ничего, что отличается между пейзажным и портретным запусками, кроме ориентации всплеска UIView, который, кажется, работает нормально.Кроме того, URL, который я использую, является действительным, насколько я могу судить (само собой разумеется, что URL в примере является представительным, но не фактическим URL).

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 20 апреля 2012

Благодаря предложению Иоахима установить символическую точку останова на obc_exception_throw, я понял, что: 1. приложение всегда запускается в портретном режиме, а затем вызывается willAnimateRotation ... (который, оказывается, стандартен - глупо) 2. существующая реализация willAnimateRotation ... предполагала, что весь контент был загружен, и поэтому вызывал метод управления контентом, который передал нулевой аргумент (поскольку контент еще не был загружен).

Итак, уроквот что приложение ВСЕГДА запускается в портретном режиме, а затем все загруженные виды автоматически поворачиваются, если устройство находится в альбомной ориентации.

...