In C# kann ich eine Verwendung anhand von Anweisung schreiben, z. B.:
using (SqlConnection connection = new SqlConnection("connectionString"))
{
...
}
Dies stellt sicher, dass das Verbindungsobjekt entsorgt wird, sobald es aus dem Spielraum gegangen ist. Ich frage mich, ob es eine Möglichkeit gibt, dies innerhalb von Objective-C zu tun. Ich habe im Grunde einen Verbindungspool, der mehrere Sockets offen hält, anstatt jedes Mal, wenn ich sie verwende, zu öffnen und zu schließen. Ich kann in meinen Verbindungspool eintauchen, eine offene Verbindung holen (oder bei Bedarf eine neue erstellen). Lassen Sie die Verbindung wieder in den Pool los, sobald ich damit fertig bin. Mein Ziel-C-Code sieht derzeit so aus:
MyConnection * connection = [ConnectionPool ConnectionWithDetails: @"host/server/port/etc"];
[connection doSomething];
[ConnectionPool ReleaseConnection: connection];
Also, wenn aus irgendeinem Grund, ReleaseConnection
Wird nicht angerufen, die Verbindung baumelt nur (sie wird irgendwann befreit, aber sie geht nicht in meinen Pool zurück).
Grundsätzlich suche ich nach einem Weg, wie ich die Anforderung zum Anruf beseitigen kann ReleaseConnection
. Ich habe einige Nachforschungen angestellt, aber bisher bin ich trocken gekommen.