Ich brauche in meinem appBAD_EXEC NSOperationQueue mit Ersten
asynchrone Aufgaben ausführenIch habe den folgenden Code:
- (NSDictionary *)parallelSendSync:(NSDictionary *)requests {
NSMutableDictionary *responseDict = [[NSMutableDictionary alloc] init];
for (NSString *key in [requests allKeys]) {
[_parallelSendQueue addOperationWithBlock:^{
NSDictionary *sendResult = [self send:requests[key] :nil];
[responseDict setObject:sendResult forKey:key]; //this line sometimes throws BAD_EXEC
}];
}
[_parallelSendQueue waitUntilAllOperationsAreFinished];
return responseDict.copy;
}
_parallelSendQueue
akzeptiert maximal 5 gleichzeitige Operationen
leider nur einen Teil der Werke Zeit, manchmal funktioniert es OK, und manchmal wirft es BAD_EXEC
was könnte der Grund für die schlechte Exec sein?
Zeigen Sie das vollständige Crashprotokoll an. – trojanfoe
leider bleibt es stecken, und liefert mir kein Crash-Log –
Dieser Code sollte nicht funktionieren, ich erwarte, dass der Absturz tatsächlich außerhalb von diesem ist und Sie die NSDictionary zurückgeben, die möglicherweise Zeug haben, wie es async gefüllt wird aber du gibst es sofort zurück? Eine bessere Lösung wäre es, NSOperation (sehr einfach) abzuleiten und "main" zu überschreiben und einen Completion-Block zu übergeben, der ein NSDic zurückgibt. – SeanLintern88