iOS: Как удалить объект из памяти с включенным ARC?

Я разрабатываю приложение для iOS с помощью SDK iOS 5, автоматический подсчет ссылок включен. Но у меня есть определенный объект, который создается в большом количестве и должен быть освобожден через секунду, потому что иначе устройство станет очень медленным. Похоже, что они не освобождаются, поскольку устройство работает очень медленно. Есть ли способ вручную освободить объект, когда ARC включен?

EDIT: Мой код, это вызывается 200 раз в секунду для создания искр. Они затухают через 0,8 секунды, так что после этого они бесполезны.

    int xanimationdiff = arc4random() % 30;
    int yanimationdiff = arc4random() % 30;
    if (arc4random()%2 == 0) {
        xanimationdiff = xanimationdiff * -1;
    }
    if (arc4random()%2 == 0) {
        yanimationdiff = yanimationdiff * -1;
    }

    Sparkle *newSparkle = [[Sparkle alloc] initWithFrame:CGRectMake(20 + arc4random() % 280, 20, 10, 10)];
    //[newSparkle setTransform:CGAffineTransformMakeRotation(arc4random() * (M_PI * 360 / 180))]; //Rotatie instellen (was niet mooi, net sneeuw)
    [self.view addSubview:newSparkle];
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.8];
    [newSparkle setFrame:CGRectMake(newSparkle.frame.origin.x - xanimationdiff, newSparkle.frame.origin.y - yanimationdiff, newSparkle.frame.size.width, newSparkle.frame.size.height)];
    newSparkle.alpha = 0;
    [UIView commitAnimations];

Код объекта искры:

#import "Sparkle.h"

@implementation Sparkle

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"sparkle.png"]]];
    }
    return self;
}

@end
10
задан cabaret 3 October 2011 в 14:47
поделиться