Если вызов NSLog
поступает из фонового потока, это вполне может изменить последовательность событий.NSLog
каким-то образом синхронизирует записи в stderr - я точно не знаю, как , но не стоит думать, что одним из последствий может быть изменение времени жизни вашего объекта.
Что касается того, что говорит вам об исходной проблеме, то, похоже, это подтверждает диагноз Дэйва Делонга: вы пытаетесь использовать устаревший указатель.Что, в свою очередь, означает, что либо бит кода, выполняющего вызов, не сохраняется должным образом, либо какой-либо другой бит перевыпускается.