Выглядит так, как будто вы можете просочиться через pickerList. У вас есть указатель на pickerList, который вы затем установите на ноль. Затем вы отправляете сообщение об освобождении в этот момент (что в действительности является запретом). Если вы используете:
if (pickerList)
{
[pickerList release];
self.pickerList=nil;
}
вместо вашего текущего кода, вы чувствуете себя лучше? Трудно сказать, не видя больше кода, но вы определенно хотите выпустить его до того, как установите ivar на nil. (При этом если вы выполнили @property (retain) UIPickerList * pickerList, то self.pickerList = nil освободит pickerList. Если вы это сделали, то ваш вызов [pickerList release] является избыточным.)
Вы вполне можете получить отчет об утечке recSTR из инструментов. Но это не значит, что проблема не в pickerList. Глядя на код, не исключено, что recSTR принадлежит экземпляру pickerList, который висит вокруг, потому что вы отбросили указатель на него, а затем отправили сообщение о выпуске в nil. Таким образом, вы получите утечку recSTR и pickerList.