Bug no método de desenho de string do UIKit?

Para replicar uma falha que estava ocorrendo em meu aplicativo, tive que criar uma amostra com uma taxa de repetição um pouco exagerada que talvez não seja prática, mas que demonstre exatamente o que estava acontecendo no meu aplicativo. Ao desenhar um NSString em um thread de segundo plano usandoNSOperations, há, por vezes, uma falha com a última chamada no rastreio da pilha antes da falhaWebCore::FontFallbackList::~FontFallBackList().

- (void)viewDidLoad
{
    queue = [[NSOperationQueue alloc] init];
    [NSTimer scheduledTimerWithTimeInterval:0.0001 target:self selector:@selector(timerDidFire:) userInfo:nil repeats:YES];
}

-(void)timerDidFire:(NSTimer*)timer
{
    NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{
        CGRect rect = CGRectMake(0, 0, 50, 50);
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(rect.size.width, rect.size.height), YES, 0.0);
        NSString *string = @"Sd";
        [string drawInRect:rect withFont:[UIFont boldSystemFontOfSize:12] lineBreakMode:UILineBreakModeTailTruncation]; 
        UIGraphicsEndImageContext();     
    }];
    [queue addOperation:op];
}

Você pode facilmente replicar essa falha com o código acima. Alguém tem alguma idéia sobre a natureza desse acidente e por que isso pode estar acontecendo? (a solução para este problema é[queue setMaxConcurrentOperations:1];)

questionAnswers(3)

yourAnswerToTheQuestion