FMDatabaseQueue Wie ein Wert zurückgegeben wird

8

Ich verwende FMDatabaseQueue in meiner iOS-Anwendung. Ich bin im Verstehen, wie man den Wert beim Erstellen der Warteschlange zurückgibt. Schätze deine Hilfe !!

%Vor%     
Ethan Sakhai 27.05.2013, 03:17
quelle

2 Antworten

15

Es hängt davon ab, was Sie zurückgeben wollen. Was Sie jedoch verwirren könnte, ist Folgendes: Wenn Sie eine return -Anweisung aus dem Block inDatabase ausgeben, kehren Sie aus dem Block zurück und kehren nicht von der Methode zurück, die diesen inDatabase -Block enthält.

Sie geben also einfach keine Werte aus dem Block inDatabase zurück, sondern geben Werte von außerhalb des Blocks zurück. Was Sie normalerweise tun werden, ist, dass Sie Ihre Variable deklarieren, dass sie außerhalb des Blocks inDatabase zurückgegeben wird, Ihr inDatabase Block wird sie aktualisieren und dann, wenn der Block fertig ist, In diesem Fall geben Sie die Ergebnisse zurück (nicht aus dem inDatabase -Block).

Ein gängiges Beispiel ist, wenn Sie ein NSMutableArray erstellen: Erstellen Sie also das veränderbare Array außerhalb des Blocks und fügen Sie dann Werte aus dem Block hinzu, geben Sie aber die Ergebnisse nach zurück Beende den inDatabase -Block:

%Vor%

Oder, wenn Sie mit einem fundamentalen Typ arbeiten, wie einem NSInteger oder BOOL oder was Sie haben, würden Sie die Variable mit einem __block Qualifier deklarieren. Zum Beispiel verwende ich dies, um eine BOOL-Erfolgsvariable zurückzugeben, z. B .:

%Vor%

Obwohl dies beim ersten Mal verwirrend erscheinen mag, ist es hilfreich, dies zu verstehen. Wenn Sie GCD viel blockieren, ist dieses Muster sehr verbreitet. Wenn Sie einen Block haben (angezeigt durch das ^ -Zeichen), müssen Sie ihn fast als eine Funktion betrachten, die Sie innerhalb Ihrer Hauptmethode definieren. Wenn Sie in einem Block auf ein return stoßen, kehren Sie zu der Methode zurück, die den Block enthält.

Für Einführungen zu Blöcken siehe:

Rob 27.05.2013 06:23
quelle
0

Sie können andere Dinge in der Blockmethode übergeben, wie im folgenden Beispiel

Wenn Sie die Seite FMDB Github Page lesen, können Sie verstehen, wie die Dinge funktionieren

%Vor%     
Rahul Vyas 27.05.2013 04:22
quelle

Tags und Links