NSURLConncetion sendSynchronousRequest

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSURLConncetion sendSynchronousRequest

    Moin,
    mal ne Fragen, ich nutz in meiner App öfter

    Quellcode

    1. [NSURLConnection sendSynchronousRequest: ... ]


    Natürlich möchte ich vorher den networkActivityIndicator anzeigen und bei erfolgreichem Datenempfang wieder ausblenden.

    Es ist mir aber zu mühseelig das an jeder Stelle selbst einzupflegen.
    Gibts ne Möglichkeit, sowas allgemein zu setzen, bei jeder NSURLConnection sendSynchronus ...

    Merci, matz :)
  • Ich würde nie niemals einen synchronen Request benutzen. Alleine schon wegen dem Timeout wenn der Server mal nicht da ist. Kein Anwender findet es lustig 30s vor seinersich nicht rührenden App zu hängen.

    Ansonsten kannst du doch einfach eine Klasse erstellen mySynRequest in der du das machst

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • matz schrieb:

    Gibts ne Möglichkeit, sowas allgemein zu setzen, bei jeder NSURLConnection sendSynchronus ...

    Das geht allenfalls mit Methodswizzeling. Davon würde ich aber abraten. Schreib' lieber eine Kategoriemethode, die die gewünschten Anweisungen ausführt und ersetze die Aufrufe mit Search&Replace.

    BTW: Bist Du Dir übrigens sicher, dass Du nicht in die Runloop zurückkehren musst, damit der Indikator startet?
    „Meine Komplikation hatte eine Komplikation.“
  • Mh, moment mach ichs so

    Quellcode

    1. dispatch_async(dispatch_get_main_queue(), ^{
    2. [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    3. });
    4. Request senden
    5. dispatch_async(dispatch_get_main_queue(), ^{
    6. [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    7. });

    @claus, ich brauche sendSynchronousRequest, hat seine Gründe und die App muss auch noch unter iOS 4 laufen.

    Außerdem kann es zu kommen, das der Server nicht mehr erreichbar ist
  • macmoonshine schrieb:

    matz schrieb:

    Gibts ne Möglichkeit, sowas allgemein zu setzen, bei jeder NSURLConnection sendSynchronus ...

    Das geht allenfalls mit Methodswizzeling. Davon würde ich aber abraten. Schreib' lieber eine Kategoriemethode, die die gewünschten Anweisungen ausführt und ersetze die Aufrufe mit Search&Replace.

    BTW: Bist Du Dir übrigens sicher, dass Du nicht in die Runloop zurückkehren musst, damit der Indikator startet?

    Nicht, dass ich es probiert hätte, aber: Auch Klassen haben einen isa-Zeiger. :-)

    Und: Nicht, dass ich es jemals probieren würde.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • matz schrieb:



    @claus, ich brauche sendSynchronousRequest, hat seine Gründe und die App muss auch noch unter iOS 4 laufen.

    Außerdem kann es zu kommen, das der Server nicht mehr erreichbar ist


    Auch wenn ich das sehr sehr bezweifele das du das wirklich brauchst. (Du bekommst eine Kiste Bier wenn Du es mir beweißt) kann man es dann immer noch in eine Operation oder einen Async Block packen

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Eben weil er das kann, wartet der Nutzer nicht 30 s.

    Und man braucht das immer dann, wenn die Aufforderung zum Request bereits asynchron eintrifft und die Methode deshalb einen Rückgabewert hat. Das war einfach.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • macmoonshine schrieb:

    Amin Negm-Awad schrieb:

    Und: Nicht, dass ich es jemals probieren würde.

    +lol+

    Typisches "Weil es geht, ist es auch sinnvoll"-Antipattern.

    Ich habe gerade erst eine App gesehen, die soviel "geheimen Automatismus" macht, dass in einem Wust an Seiteneffekten und Automatismen, jede Asynchronität um die Ohren fliegt. Das ist gar nicht lustig.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Wäre cool, wenn man dort die Konstruktoren von Literalen überschreiben könnte. Du machst ein unwissendes

    Quellcode

    1. 5;

    und hast danach das Internet herunter gefahren.

    C++ ist eben eine Sprache, bei der man wissen muss, was man tut.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?