J'ai récemment téléchargé l'exemple de code de GLPaint et j'ai regardé un élément très intéressant. Il y a un NSMutableArray enregistréPaths qui contient des points qui sont ensuite lus et dessinés par GLPaint.Comment créer mon propre fichier recordedPath dans GLPaint Exemple de code
Il est déclaré ici:
NSMutableArray *recordedPaths;
recordedPaths = [NSMutableArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Recording" ofType:@"data"]];
if([recordedPaths count])
[self performSelector:@selector(playback:) withObject:recordedPaths afterDelay:0.2];
Voici le code pour la lecture:
- (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];
}
De ce que je comprends que recordedPaths est un tableau mutable que son dedans struct tableaux c de CGPoint qui sont alors lu et rendu. Je voudrais mettre dans mon propre tableau et j'ai eu des problèmes avec cela.
J'ai essayé de changer la déclaration de recordedPaths à ceci:
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];
Cela ne fonctionne pas bien ... Un conseil?
J'ai essayé le code, avec ces lignes ajoutées à la fin: \t \t NSMutableArray * myArray = [[NSMutableArray alloc] init]; \t \t [myArray addObject: données]; \t \t [self performSelector: @selector (lecture :) withObject: recordedPaths afterDelay: 0.2]; mais il n'a rien affiché quand j'ai lancé l'application dans le simulateur – gizmoitai
@giz comment implémenter '-renderLineFromPoint: toPoint:'? – kennytm
Eh bien, la fonction de lecture l'implémente ... (Voir la question originale pour le code) – gizmoitai