IOS成長之路-從網路讀取資料

來源:互聯網
上載者:User

邏輯:

首先建立一個NSURL地址,發送request請求,然後調用         

                       - (void)connection:(NSURLConnection *)connection didReceiveData:(NSMutableData
*)data 

把下載的資料存放區到NSDate對象中,當下載完成後執行    

                       - (void)connectionDidFinishLoading:(NSURLConnection *)connection 方法,

假如串連出現錯誤:                     

                       - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

實現:

//定義一個NSDate對象NSMutableData *buffer;/*=========------------------==============*/- (void)viewDidLoad{    //調用down方法    [self Down];    //初始化 buffer    buffer = [[NSMutableData alloc]init];    [super viewDidLoad];}-(void) Down{    //建立url      NSURL *url = [NSURL URLWithString:@"http://192.168.67.3:8080/movie/3.mp4"];    //基於http的串連請求    NSURLRequest* request = [[NSURLRequest alloc]initWithURL:url];    //建立 connection 會話NSURLConnection* connection = [[NSURLConnection alloc]initWithRequest:request                                                                  delegate:self];        //釋放[connection release];[request release];}//提供一個NSData, 封裝了剛從串連上收到的位元組塊//下載添加資料的時候會產生一個資料回調(它是一部分一部分的下載),直到資料全部下載完成- (void)connection:(NSURLConnection *)connection didReceiveData:(NSMutableData *)data{    //buffer 是一個可以修改的data 資料,把從網路上下載的資料 data 添加進去[buffer appendData:data];}//基於http的會話已經完成會執行(就是下載完成)- (void)connectionDidFinishLoading:(NSURLConnection *)connection{    //建立一個檔案,  指定路徑,名稱,和內容    [[NSFileManager defaultManager]createFileAtPath:@"/tmp/movie.mp4" contents:buffer attributes:nil];}//當網路連接不成功或出現異常的時候會調用,提供一個NSError以解釋失敗的原因- (void)connection:(NSURLConnection *)connection   didFailWithError:(NSError *)error{    //載入的是一個警告框UIAlertView *errorAlert = [[UIAlertView alloc]   initWithTitle: [error localizedDescription]   message: [error localizedFailureReason]   delegate:nil   cancelButtonTitle:@"OK"   otherButtonTitles:nil];[errorAlert show];[errorAlert release];}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.