Приведенный ниже метод вызывается неосновного потока, чтобы быть конкретным, в очереди обратного вызова записи аудиоsetNeedsDisplay представлен на главной очереди, но не называется
- (void)myMethod
{
//...
dispatch_async(dispatch_get_main_queue(), ^{
[myGraphView setNeedsDisplayInRect:CGRectMake(a, b, c, d)];
NSLog(@"Block called");
});
//...
}
, где myGraphView является объектом пользовательских UIView. Для чего я знаю, setNeedsDisplayInRect:
должен быть вызван в главной теме, поэтому у меня есть dispatch_async...
на месте. Теперь проблема заключается в методе - (void)drawRect:(CGRect)rect
Я реализовал для myGraph никогда не вызывается, хотя NSLog
в блоке вызывается много раз.
Я выполнил вашу вторую возможность, но я обнаружил, что проблема была вызвана третьей возможностью того, что представление, которое я хотел обновить, никогда не было добавлено в его супервизор (таким образом, его никогда не отображали). Но ваш ответ заставил меня узнать ошибку в моем коде. Благодаря! –
Если вы нашли решение, разместите его, чтобы другие могли узнать из вашего опыта. – Holly