10
votes

Y a-t-il un moyen d'ajouter des blocs à Nsoperationqueur comme celui-ci

J'essaie de comprendre NsoperationQueue et j'essaie de créer l'exemple le plus simple possible. J'ai ce qui suit: xxx

mais aimerait faire cela: xxx

est cette dernière forme possible? Puis-je convertir un bloc à une nsopération?

thx à l'avance


2 commentaires

Non cela ne fonctionnera pas, mais pourquoi voulez-vous même faire cela? Qu'essayez-vous d'atteindre?


Juste apprendre avec un exemple simple: ceci a également été utile, mais lisez également les commentaires aussi Eng.pulse. Moi / Téléchargements simultanés - Utilisation-NsoperationQue


3 Réponses :


29
votes

Vous pouvez:

NSBlockOperation *jtOperation = [NSBlockOperation blockOperationWithBlock:^{
    NSLog(@"here is something for jt");
}];

NSBlockOperation *clOperation = [NSBlockOperation blockOperationWithBlock:^{
    NSLog(@"oh is this going to work");
}];

[myOQ addOperation:jtOperation];
[myOQ addOperation:clOperation];


0 commentaires

2
votes

Vous pouvez également faire

[operationQueue addOperationWithBlock:^{
    // Stuff
})];


0 commentaires

0
votes

SWIFT STRAND>

let networkingOperation = NSBlockOperation(block: {
                             // Your code here
                          })


1 commentaires

Votre solution est tentante, mais vous ne devez jamais utiliser NSBLOCKOPERATION Envelopper une fonction asynchrone , comme une demande de réseau. Plutôt, sous-classes correctement nsoperation . NsoperationQueue est conçu pour exécuter des tâches asynchrones AKA NSOPERATION Instances. Le nsblockoperération est simplement un assistant où vous pouvez en faire une opération synchrone . Dans ce cas, cependant, vous seriez presque toujours mieux à utiliser les files d'attente d'expédition.