, поэтому у меня есть [NSMutableArray * paths], который содержит UIBezierPaths, которые соответствуют каждому отдельному пути, нарисованному на экране. У меня также есть другой массив цветов NSMutable, который содержит соответствующий цвет для пути. Проблема, с которой я столкнулся, заключается в том, что хотя два массива изменяются, и я вижу, как увеличивается число обоих, следующий метод drawRect, похоже, рисует только последний путь в массиве.
Я перебрал много вопросов и, исходя из того, что я прочитал до сих пор, эта проблема, кажется, доставляет нам новичков и в основном из-за несоответствия типов. Я даже пытался Typecast возвращение, и это было бесполезно.
Вот мой код от drawRect
int cnt = paths.count;
if (cnt != 0)
{
for(int i = 0; i < cnt; i++)
{
NSLog(@"Drawing path:%i", i);
UIColor *color;
color = [colors objectAtIndex:i];
[color setStroke];
UIBezierPath *path = [paths objectAtIndex:i];
path.lineWidth = 2;
[path stroke];
}
}
каждый раз, когда я вызываю [self setNeedsDisplay], он стирает весь мой экран.
Правильно ли я считаю, что не обращаюсь с моим
UIBezierPath *path = [paths objectAtIndex:i];
хорошо
Большое спасибо и заранее.
UPDATE:
Я перерыл еще несколько кодов, и теперь кажется, что есть еще одна возможность, что ARC выпускает содержимое моего массива NSMutable. Я попытался сделать следующее и получил ошибку компилятора.
[paths retain];