Недавно я загрузил образец кода GLPaint и посмотрел на него очень интересную часть. Существует зарегистрированный файл NSMutableArray, в котором есть точки, которые затем читаются и рисуются GLPaint.Как создать собственный файл записи в GLPaint Пример кода
Он заявил здесь:
NSMutableArray *recordedPaths;
recordedPaths = [NSMutableArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Recording" ofType:@"data"]];
if([recordedPaths count])
[self performSelector:@selector(playback:) withObject:recordedPaths afterDelay:0.2];
Это код для воспроизведения:
- (void) playback:(NSMutableArray*)recordedPaths {
NSData* data = [recordedPaths objectAtIndex:0];
CGPoint* point = (CGPoint*)[data bytes];
NSUInteger count = [data length]/sizeof(CGPoint),
i;
//Render the current path
for(i = 0; i < count - 1; ++i, ++point)
[self renderLineFromPoint:*point toPoint:*(point + 1)];
//Render the next path after a short delay
[recordedPaths removeObjectAtIndex:0];
if([recordedPaths count])
[self performSelector:@selector(playback:) withObject:recordedPaths afterDelay:0.01];
}
Из этого я понял, что recordedPaths является изменяемый массив, его в нем STRUCT гр массивы CGPoint, которые затем читать и визуализировать. Я хотел бы добавить свой собственный массив, и у меня были проблемы с этим.
Я попытался изменить декларацию recordedPaths к этому:
NSMutableArray *myArray = [[NSMutableArray alloc] init];
CGPoint* points;
CGPoint a = CGPointMake(50,50);
int i;
for (i=0; i<100; i++,points++) {
a = CGPointMake(i,i);
points = &a;
}
NSData *data = [NSData dataWithBytes:&points length:sizeof(*points)];
[myArray addObject:data];
Это не сработало, хотя ... Любые советы?
Я попытался код, с этим добавлены строки в конце: \t \t NSMutableArray * туАггау = [[NSMutableArray Alloc] инициализации]; \t \t [myArray addObject: data]; \t \t [self производитсяSelector: @selector (воспроизведение :) сObject: записаноPaths послеDelay: 0.2]; но он ничего не обнаружил, когда я запустил приложение в симуляторе. – gizmoitai
@giz как вам реализовать. -renderLineFromPoint: toPoint: '? – kennytm
Ну, функция воспроизведения реализует его ... (См. Оригинальный вопрос для кода) – gizmoitai