Я нашел, где была проблема.На самом деле это было не в tableView:titleForHeaderInSection
, а скорее в tableView:viewForHeaderInSection
.
На самом деле это потому, что я использую подкласс UIView для viewForHeaderInSection.В этом подклассе у меня есть ивар с именем "title".
В методе init этого подкласса я установил этот ивар следующим образом:
title = myTitle; // (myTitle is an argument of the custom init method)
И чуть позже я используюэтот заголовок в методе drawRect выглядит следующим образом:
[title drawAtPoint:CGPointMake(8, 9) withFont:[UIFont systemFontOfSize:19]];
Это прекрасно работает, если я передаю статическую строку, например @ "example string", из titleForHeaderInSection и через viewForHEaderInSection.
Но совсем неесли я передаю объект автоматического освобождения, такой как stringWithFormat.
Итак, решение состоит в том, чтобы просто сохранить мой ivar в подклассе следующим образом:
title = [myTitle retain];
и освободить его в методе dealloc моегоподкласс:
[title dealloc];
Таким образом, он работает и не падает.Я надеюсь, что это помогает и что объяснения ясны.