Pausar / Reanudar descargas en Objective-C

Bien. Espero que esta sea mi última publicación sobre el administrador de descargas que estoy escribiendo en Objective-C. Todo parece funcionar bien, excepto la funcionalidad de pausa / reanudar. Mi problema es que cuando una descarga intenta continuar desde donde se quedó, agrega los datos que recibe al archivo, pero todavía parece que está intentando descargar el archivo completo. Esto da como resultado un archivo que es más grande de lo que se supone que es el archivo original. Aquí está el código que estoy usando para descargar archivos. ¿Estoy haciendo algo mal

-(void)start:(unsigned int)fromByte {
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:self.url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:DEFAULT_TIMEOUT];

    // Define the bytes we wish to download.
    NSString *range = [NSString stringWithFormat:@"bytes=%i-", fromByte];
    [request setValue:range forHTTPHeaderField:@"Range"];

    // Data should immediately start downloading after the connection is created.
    self.urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:TRUE];

    if (!self.urlConnection) {
        #warning Handle error.
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta