1
我正在寫一個帶有web服務器的iPhone應用程序。爲了處理一個Web請求,我接收了Web請求並將它寫入()給我,以便將我想要發回的數據寫入它。當filedescriptor變爲無效時,write()會導致致命的崩潰
當我嘗試下載一箇中等大小的文件(3-6MB)它工作正常,但如果我取消下載到一半,應用程序崩潰,不留一個錯誤的軌跡。我在考慮文件描述符在寫入中途變得無效,並導致崩潰。我真的不知道這是導致墜機的原因,我只是假設。
我立足我的web服務器關閉this例子。
NSString *header = @"";
NSData *data = [NSData dataWithContentsOfFile:fullPath];
write (fd, [header UTF8String], [header length]);
write(fd, [data bytes], [data length]);
close(fd);
有誰知道如何解決這個問題?我正在考慮分塊數據,然後寫每個部分,但我認爲這不會有幫助。
你用什麼代碼來停止下載?您是否嘗試在調試器中運行應用程序來捕捉崩潰? – codewarrior 2010-04-01 02:05:14
爲什麼假設任何事情?你有工具來幫助你識別崩潰點。至少應該有一次回溯。在調試器中運行您的應用程序,並查看它崩潰的位置。 – bbum 2010-04-01 03:27:29