Почему происходит сбой моего приложения на applicationDidEnterBackground? - PullRequest
0 голосов
/ 22 января 2011

У меня есть статический метод , называемый writeToServer, который вызывается при входе приложения в фоновый режим .

по моему AppDelegate.m:

- (void)applicationDidEnterBackground:(UIApplication *) application {
    [LogZone writeToServer];
    NSLog(@"Log sended to server. Done.");
}

по моему LogZone.m:

+ (void) writeToServer {
    NSString *qStr = [[NSString alloc]
        initWithFormat:@"%@?ip=%@&uid=%@&platform=%@&model=%@&lat=%@&lon=%@",
            LOG_SERVER_URL,
            _LOG_IP, _LOG_UID, _LOG_PLAT, _LOG_MOD, _LOG_LAT, _LOG_LON];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:qStr]];    
    [request setHTTPMethod: @"POST"];
    [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
}

Прописные переменные - это статические строки, созданные следующим образом:

.h

extern NSString* _LOG_UID;

.m

NSString* _LOG_UID = @"-1";

Когда я вхожу в фоновом режиме, происходит сбой с ошибкой « classic »:

* - [CFString responsedsToSelector:]: сообщение отправлено освобожденному экземпляру 0x6a4c800

Но почему?
Я ничего не выпускаю! =!

Что не так?

Ответы [ 2 ]

1 голос
/ 23 января 2011

Но почему? Я ничего не выпускаю!

Конечно, но вы сохраняете нужные объекты?

Сохранение в нужное время так же важно, как и не в неправильное время ...

0 голосов
/ 23 января 2011

Почему бы просто не использовать следующее:

NSString *qStr = [NSString stringWithFormat:@"%@?ip=%@&uid=%@&platform=%@&model=%@&lat=%@&lon=%@", LOG_SERVER_URL, _LOG_IP, _LOG_UID, _LOG_PLAT, _LOG_MOD, _LOG_LAT, _LOG_LON];
...