NSURLConnection asynch

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

  • NSURLConnection asynch

    Moin Moin,

    ich bin gerade dabei meine App umszustellen auf asynch (zum testen ob verbindung zum server besteht etc. war mit synch ok, das blockieren der App nervt aber natürlich)
    jetzt hab ich im Buch von Macmoonshine dazu gelesen, NSURLConnectionDelegate und NSURLConnectionDataDelegate und wollte mir dazu das genannte Beispiel anschauen SiteSchedule, leider ist das aber im GitHub nicht dabei
    heißt das doch anders?

    oder hat jemand ein anderes schönes beispiel dafür?
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint:
  • danke,

    ich habe die zip runtergeladen , da ist der Ordner Storyboard nicht enthalten ( cocoaneheads.github.io/iPhone/ )
    im GitHub selber ist er aber da

    ich hab zwischenzeitlich aber festgestellt das die methode didSendBodyData mit der ich testen wollte ob mein Delegate aufgerufen wird, nicht aufgerufen wird, die anderen methoden aber schon (hatte ich da noch nicht implementiert)
    dem werde ich jetzt aber noch mal auf den Grund gehen

    danke für den Hinweis
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint:
  • nussratte schrieb:

    ich habe die zip runtergeladen , da ist der Ordner Storyboard nicht enthalten ( cocoaneheads.github.io/iPhone/ )

    Damit bekommst Du die erste Auflage. Am besten gehst Du auf die Startseite des Projekts (github.com/Cocoaneheads/iPhone), wählst im Dropdown Auflage_2 aus und lädst dann das ZIP.

    Ich schaue mal, ob ich den Branch master auf Auflage_2 verbiegen kann.
    „Meine Komplikation hatte eine Komplikation.“
  • ich hab irgendwie ein Problem, mit den Daten die ich mir im ConnectionDelegate zusammensetze

    manchmal funktioniert es wunderbar und dann wieder nicht mit dem Error das JSON nicht mit ARRAY oder DICTIONARY startet (ich nutze aber immer das gleiche)
    als ich das noch synchron gemacht habe, ging es auch

    was mache ich also Falsch ?

    hier mal das Connection Delegate

    Quellcode

    1. - (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite
    2. {
    3. NSLog(@"ConnectionDelegate didSendBodyData");
    4. }
    5. - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
    6. {
    7. NSLog(@"ConnectionDelegate didReceiveResponse");
    8. _dataLength = (NSUInteger) response.expectedContentLength;
    9. _mutableDataReceived = [[NSMutableData alloc] initWithCapacity:_dataLength];
    10. }
    11. /*
    12. this method might be calling more than one times according to incoming data size
    13. */
    14. -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
    15. {
    16. NSLog(@"ConnectionDelegate didReceiveData");
    17. [_mutableDataReceived appendData:data];
    18. }
    19. /*
    20. if there is an error occured, this method will be called by connection
    21. */
    22. -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
    23. {
    24. NSLog(@"ConnectionDelegate didFailWithError");
    25. NSLog(@"Request: %@",connection.originalRequest);
    26. NSLog(@"%@" , error);
    27. }
    28. /*
    29. if data is successfully received, this method will be called by connection
    30. */
    31. -(void)connectionDidFinishLoading:(NSURLConnection *)connection
    32. {
    33. NSLog(@"ConnectionDelegate connectionDidFinishLoading");
    34. NSLog(@"_mutableDataReceived: %@",_mutableDataReceived);
    35. if (_delegate) {
    36. [_delegate addNewData:_mutableDataReceived forURLRequest:connection.originalRequest];
    37. }
    38. }
    Alles anzeigen


    und einmal die addnewData

    Quellcode

    1. - (void)addNewData:(NSData *)data forURLRequest:(NSURLRequest *)urlRequest
    2. {
    3. NSLog(@"addNew");
    4. NSLog(@"urlRequest: %@",urlRequest);
    5. NSLog(@"OLD %@",_mutableDictionaryConnectionTargets);
    6. NSLog(@"addNewData data: %@",data);
    7. NSError *error;
    8. NSMutableDictionary *dictionary =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
    9. if (error) {
    10. NSLog(@"ERROR: %@",error);
    11. }
    12. weiterer Code für die Verarbeitung ....
    13. }
    Alles anzeigen
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint: