iOS-Programmierung: Verwenden von Threads zum Hinzufügen mehrerer Bilder zur Bibliothek

In Xcode, wenn ich versuche hinzuzufügenmehr als 5 Bilder In meiner Bibliothek wird der folgende Fehler angezeigt:

Error Domain=ALAssetsLibraryErrorDomain Code=-3301 "Write busy" UserInfo=0xa706aa0 {NSLocalizedRecoverySuggestion=Try to write again, NSLocalizedFailureReason=There was a problem writing this asset because the writing resources are busy., NSLocalizedDescription=Write busy, NSUnderlyingError=0xa770110 "Write busy"}

Um dieses Problem zu lösen, stellte ich fest, dass Threads meine Probleme lösen würden. In der Dokumentation wird angegeben, dass ich POSIX-Threads oder verwenden kannNSThreads. Wenn ich versuche, POSIX-Threads zu verwenden, setze ich meine Threads so, dass sie verbindbar sind, und erstelle eine void * -Funktion:

void * myFunc (void * image)
{
       UIImageWriteToSavedPhotosAlbum((__bridge UIImage *)(image),self,nil,nil);
       pthread_exit(NULL);
       return NULL;
}

Ich warte auch darauf, dass der Thread endet. Es werden aber immer noch nur 5 Bilder geschrieben.

Ich habe versucht mitNSThreads und tat:

[self performSelectorOnMainThread:@selector(myFunc:) withObject:image waitUntilDone:YES];

Aber es funktioniert immer noch nicht.

Gibt es eine Antwort auf mein Problem? Es ist entscheidend für meine Arbeit.

Vielen Dank.

Bearbeiten:

Versuchte auch dispatch_async. Ist es falsch?

dispatch_queue_t myQueue = dispatch_queue_create("com.cropr.myqueue", 0);

for (UIImage * image in images) {

        dispatch_async(myQueue, ^{

            [self.library saveImage:image toAlbum:@"Cropr" withCompletionBlock:^(NSError *error) {
                if (error!=nil) {
                    NSLog(@"Big error: %@", [error description]);
                }
            }];

        });

    }

Was muss ich hinzufügen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage