J'ai sous-classé NSOperation et - (void) main est ok, (puisqu'il a fonctionné avant d'utiliser NSOperation), j'ai également passé par la méthode init et les variables sont initialisées correctement. Tout difficile après la - (id) initWithSampleBuffer: est fait et je suis en train d'ajouter le uploadOperation au NSOperationQueue:exc_bad_acccess lors de l'ajout à NSOperationQueue
UploadOperation *ulOp = [[UploadOperation alloc] initWithSampleBuffer:sampleBuffer];
[queue addOperation:ulOp]; //here i get exc_bad_access
[ulOp release];
je reçois EXC_BAD_ACCESS. J'ai essayé des points d'arrêt et je peux voir que cette file d'attente existe, tout comme ulOp. Je n'arrive pas à comprendre ce que je fais de mal, puisque, à ma connaissance, exc_bad_access se produit lorsque vous essayez de transmettre un "message" à quelque chose qui est déjà désalloué, et clairement, aucun d'entre eux ne l'est.
- (id)initWithSampleBuffer:(CMSampleBufferRef) aSampleBuffer {
sampleBuffer = aSampleBuffer;
VideoStreamViewController *vc = [VideoStreamViewController shared];
ul = [[Uploader alloc] initWithURL:[NSURL alloc] filePath:@"" delegate:vc doneSelector:@selector(didFinishUpload:) errorSelector:@selector(uploadFailed:)];
return self;
}
mais les choses Uploader, est pas le problème (je l'ai supprimé et encore obtenir le même résultat). et de ce que je peux y voir aucun problème avec l'objet CMSampleBuffer, il est initialisé!
initialisation de la file:
dans .h:
NSOperationQueue *queue;
@property (nonatomic, retain) NSOperationQueue *queue;
dans .m:
@synthesize queue;
self.queue = [[NSOperationQueue alloc] init];
[queue setMaxConcurrentOperationCount:1];
A quoi ressemble l'initialiseur 'initWithSampleBuffer:'? – Eimantas
là vous l'avez. je ne m'épuise pas il y a un problème là. aussi j'ajoute l'initialisation de la NSOperationQueue. –
D'où vient le 'self'? Vous faites l'initialisation de votre objet dans le mauvais sens. Ajoutez 'self = [super init]' en tant que première ligne de votre initialiseur. Aussi à partir de regards, je vous suggère de lire le guide sur les files d'attente de programmation et d'exploitation multithread. – Eimantas