Вы должны release
каждый объект, которым вы владеете (вы сохранили, скопировали или инициализировали / выделили).
Способ, которым вы отпускаете свои объекты в конце, верен, , но , здесь unosRazlike = [NSNumber numberWithInt: 0];
, вы присвоили unosRazlike
другое значение, не освобождая предыдущее, и здесь есть утечка.
Кроме того, с помощью такого метода вы должны сохранить свой объект.
Итак:
unosRazlike = ...
// first
[unosRazlike release];
unosRazlike = [[NSNumber numberWithInt: 0] retain];
// ...
[unosRazlike release];
EDIT
-(IBAction) padIliStilja: (id) sender
{
// this is no matter
NSNumber *unosUpisa = [[NSNumber alloc] init];
NSNumber *unosRazlike = [[NSNumber alloc] init];
if ([sender tag] == 1)
{
// don't forget to release them !
[unosUpisa release]; [unosRazlike release];
// and to retain (numberWithInt returns autoreleased object
unosUpisa = [[NSNumber numberWithInt: 162 + [Data variables].zvanja] retain];
unosRazlike = [[NSNumber numberWithInt: 0] retain];
}
else if ([sender tag] == 2)
{
// same again
[unosUpisa release]; [unosRazlike release];
// and to retain (numberWithInt returns autoreleased object
unosRazlike = [[NSNumber numberWithInt: 252 + [Data variables].zvanja] retain];
unosUpisa = [[NSNumber numberWithInt: 0] retain];
}
if ([Data variables].upisZaMi == NO)
{
[[Data variables].rezultatMi addObject: unosUpisa];
[[Data variables].rezultatVi addObject: unosRazlike];
}
else
{
[[Data variables].rezultatVi addObject: unosUpisa];
[[Data variables].rezultatMi addObject: unosRazlike];
}
[self dismissModalViewControllerAnimated: NO];
[unosUpisa release];
[unosRazlike release];
}
Но только мысль ... зачем инициализировать "пустые" числовые объекты, если вы устанавливаете значение в части if или else?
Просто объявите их
NSNumber *unosRazlike, *unosUpisa;
и установите их значения в if / else.