導航:首頁 > 文件處理 > iosnsdata壓縮

iosnsdata壓縮

發布時間:2022-07-14 06:31:45

⑴ ios中NSData轉化成NSString格式怎麼轉

使用 [NSString stringWithFormat:NSData] (這里的NSData指的是需要轉換成NSString的NSData變數)即可。

如果po出的NSData是不可閱讀的亂碼,那一般都是有編碼格式的,最常用的是NSUTF8StringEncoding,另外還有NSASCIIStringEncoding等,你可以在Apple文檔里找到編碼格式的那個枚舉類型,挨個嘗試。當然,如果事先知道得到的NSData的編碼類型就最好了。

⑵ 請問iOS開發怎麼解壓文件

SSZipArchive功能:

解壓zip文件

解壓密碼保護的zip文件

創建zip文件

追加到zip文件

壓縮文件

使用一個名字來壓縮NSData

使用前:

把SSZipArchive文件添加到項目中

在target中添加libz.dylib

使用方法:

php怎麼處理IOS 提交的NSDATA

<?php

$streamData = file_get_contents('php://input', 'r');//位元組流

$fullPath = 'test.png';

$reArr=array();

if(!file_exists($fullPath)){


$reArr['imgPath'] = 'test.png';

}

$h = fopen($fullPath, 'a+');

if($h){

if(fwrite($h, $streamData)){

fclose($h);

$reArr['status'] = 1;

}else{

$reArr['status'] = 0;

}

}else{

$reArr['status'] = 0;

}

?>

⑷ IOS 視頻文件怎麼轉換成NSData 再從NSData轉換成視頻文件

把MP3換成MP4就行了,

⑸ ios ziparchive 怎麼壓縮文件夾是文件夾不是文件哈

引自 http://www.36o.com/thread-119-1-1.html
在本教程中,我將演示如何在iOS程序中壓縮和解壓縮文件。我們將使用一個叫做ZipArchive的第三方庫來實現。盡管壓縮和解壓縮有許多其他的方案可選,但是我覺得ZipArchive庫是最快捷、最簡單的解決方案。let』s go。

為什麼我需要解壓縮文件
有許多原因能解釋為什麼我要在工程中使用壓縮和解壓縮功能,下面是幾個常見的原因:

蘋果App Store的50M下載限制
蘋 果公司出於流量的考慮,規定在非WIFI環境下,限制用戶只能下載小於50M的應用或游戲。這樣一來,對於一些數據或數據包較大的應用,我們只能盡量減小 應用二進制包的體積。而把數據打包到zip中,這樣App可以通過網路下載數據包,解壓出所需要的內容,而且這樣也可以動態的更新內容。

動態更新內容
這 一點在上面已經提過了。如果應用所需要的資源需要動態更新,一種常見的做法是更新資源,重新打包,重新提交到App store,這樣做你需要等待漫長的審核、上架時間。一般情況下是一周左右的時間。更好的方法是將這些資源打包放置在伺服器上,App從伺服器(或者雲存 儲)上下載,然後解壓。這樣做的好處顯而易見,那就是可以快速更新,動態更新,不需要重新打包、上傳、審核,省時省力。

從Web上下載zip文件
Safari和郵件程序都不支持zip的查看,通過ZipArchive你就可以為你的設備增加查看zip文件的能力了,盡管App Store里已經有一些App支持這些功能了。

工程設置
首先從google code上check out一份代碼,svn地址是:http://ziparchive.googlecode.com/svn/trunk/ziparchive-read-only
在終端中輸入如下命令即可check out了:
svn co http://ziparchive.googlecode.com/svn/trunk/ziparchive-read-only
或者直接從http://ziparchive.googlecode.com/files/ZipArchive.zip下載。
把minizip文件夾和ZipArchive.h以及ZipArchive.mm文件添加到你的工程中。
因為ZipArchive不支持ARC,所以如果你的工程開啟了ARC,那麼就需要對ZipArchive設置一下。在ZipArchive.mm編譯選項中,增加-fno-objc-arc即可。
最後,需要為工程鏈接libz動態鏈接庫。
至此,ZipArchive已經集成到你的工程中了,編譯工程,應該可以編譯成功。可能會有一些警告,這無關緊要,不影響編譯。但是作為一個態度嚴謹的程序員,我強烈建議你看一下這些警告是怎麼出現的,解決它們。請記住:在你的工程中,警告應該和錯誤一樣被嚴肅處理!

下載和解壓縮文件
接 下來就向大家展示在你的工程中如何從網上下載zip文件,解壓縮,並讀取zip壓縮包中的文件內容。處於演示考慮,主要的目的是向大家演示 ZipArchive介面的使用方法,所以代碼的錯誤處理和條件檢查並沒有做過多的考量,在實際的工程中,還是需要大家自己做更為嚴格的條件檢查和錯誤處 理工作。
示例工程的運行效果如下圖:

工 程中只是在ViewController中增加了一個UIImageView和一個UILabel。我們將從網路上下載zip文件,zip文件中包含一張 圖片和一個文本文件。下載解壓後,圖像會被渲染到UIImageView中,而文本會作為UILabel的內容展示。示例代碼在文章末尾。希望讀者朋友們 自行下載,編譯,查看效果。
好,接下來講一講具體的實現:

1.引入ZipArchive的頭文件。
#import "ZipArchive.h"
復制代碼
2.下載zip文件
1
dispatch_queue_t queue = dispatch_get_global_queue(
DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
NSURL *url = [NSURL URLWithString:@"http://www.icodeblog.com/wp-content/uploads/2012/08/zipfile.zip"];
NSError *error = nil;
// 2
NSData *data = [NSData dataWithContentsOfURL:url options:0 error:&error];

if(!error)
{
// 3
NSArray *paths = (NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSString *zipPath = [path :@"zipfile.zip"];

[data writeToFile:zipPath options:0 error:&error];

if(!error)
{
// TODO: Unzip
}
else
{
NSLog(@"Error saving file %@",error);
}
}
else
{
NSLog(@"Error downloading zip file: %@", error);
}

});
復制代碼
上面這段代碼的主要作用就是從iCodeBlog上下載一個zip文件,並寫入到應用的緩存目錄中。
現在zip文件已經下載下來了,接下來就是要解壓縮,並將解壓縮出來的文件利用起來。

3. 解壓縮已下載的zip文件
在第二步中,我們已經把zip文件下載到/Library/Caches/zipfile.zip,現在來解壓縮。
把上面代碼中的//TODO: Unzip用下面的代碼替換掉。
ZipArchive *za = [[ZipArchive alloc] init];
// 1
if ([za UnzipOpenFile: zipPath]) {
// 2
BOOL ret = [za UnzipFileTo: path overWrite: YES];
if (NO == ret){} [za UnzipCloseFile];

// 3
NSString *imageFilePath = [path :@"photo.png"];
NSString *textFilePath = [path :@"text.txt"];
NSData *imageData = [NSData dataWithContentsOfFile:imageFilePath options:0 error:nil];
UIImage *img = [UIImage imageWithData:imageData];
NSString *textString = [NSString stringWithContentsOfFile:textFilePath
encoding:NSASCIIStringEncoding error:nil];

// 4
dispatch_async(dispatch_get_main_queue(), ^{
self.imageView.image = img;
self.label.text = textString;
});
復制代碼
對上面的代碼做一個簡單的解釋:

1. 在內存中解壓縮文件
2. 將解壓縮的內容寫到緩存目錄中
3. 使用解壓縮後的文件
4. 更新UI

非常簡單吧!

壓縮文件
接下來看一下怎麼進行文件壓縮。在上面的步驟中,我們已經把一個zip文件解壓縮到緩存目錄中。現在我們再把解壓縮出來的文件重新壓縮為一個zip文件,並把這個zip文件寫入到Documents目錄里去(OMG,這兩個文件太慘了,被反復蹂躪)
在示例工程代碼中,我已經增加了一個按鈕,並和一個IBAction相關聯,按鈕的處理函數名為zipFilesBUttonPressed:,具體代碼如下:
- (IBAction)zipFilesButtonPressed:(id)sender
{
// 1
NSArray *paths = (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docspath = [paths objectAtIndex:0];

// 2
paths = (NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachePath = [paths objectAtIndex:0];

// 3
NSString *zipFile = [docspath :@"newzipfile.zip"];

// 4
ZipArchive *za = [[ZipArchive alloc] init];
[za CreateZipFile2:zipFile];

// 5
NSString *imagePath = [cachePath :@"photo.png"];
NSString *textPath = [cachePath :@"text.txt"];

// 6
[za addFileToZip:imagePath newname:@"NewPhotoName.png"];
[za addFileToZip:textPath newname:@"NewTextName.txt"];

// 7
BOOL success = [za CloseZipFile2];
NSLog(@"Zipped file with result %d",success);

}
復制代碼
簡單解釋一下上面代碼的意思:

1. 獲取Documents目錄,新的zip文件要寫入到這個目錄里。
2. 獲取Caches目錄,要進行壓縮的文件在這個目錄里。
3. 獲取zip文件的全路徑名。
4. 創建一個ZipArchive實例,並創建一個內存中的zip文件。需要注意的是,只有當你調用了CloseZipFile2方法之後,zip文件才會從內存中寫入到磁碟中去。
5. 獲取要被壓縮的文件的全路徑
6. 把要壓縮的文件加入到zip對象中去,加入的文件數量沒有限制,也可以加入文件夾到zip對象中去。
7. 把zip從內存中寫入到磁碟中去。
當點擊按鈕之後,在應用的Documents文件夾下應該有一個叫newzipfile.zip的文件。解壓這個文件,就能解壓出那兩個被反復蹂躪的文件來

結論
現在你知道如何使用ZipArchive來壓縮和解壓縮文件了。享受ZipArchive的便利吧。示例工程已經很好的展示了這些基本用法,大家可以好好研究下。

⑹ ios開發 獲取到一個NSData的數據要轉換成Byte數組

1.最簡單的方法: public static String reverse1(String str) { return new StringBuffer(str).reverse().toString(); } 2.最常用的方法: public static String reverse3(String s) { char[] array = s.toCharArray(); String reverse = ""; //注意這是空,不是null for (int i = array.length - 1; i >= 0; i--) reverse += array[i]; return reverse; } 3.常用方法的變形: public static String reverse2(String s) { int length = s.length(); String reverse = ""; //注意這是空

閱讀全文

與iosnsdata壓縮相關的資料

熱點內容
php函數傳遞數組 瀏覽:631
人工峰群演算法的目標函數 瀏覽:468
如何刪加密文檔 瀏覽:105
塗鴉app一鍵執行如何刪除 瀏覽:756
安卓手機如何打開fr3文件 瀏覽:743
壓縮袋8絲和14絲是什麼意思 瀏覽:647
程序員大咖java 瀏覽:68
蘋果手機文檔安卓上怎麼打開 瀏覽:527
如何做淘寶代理伺服器 瀏覽:670
gz壓縮文件夾 瀏覽:179
字母h從右往左跑的c語言編程 瀏覽:135
安卓手機如何擁有蘋果手機橫條 瀏覽:771
業余編程語言哪個好學 瀏覽:147
按照文件夾分個壓縮 瀏覽:104
航空工業出版社單片機原理及應用 瀏覽:763
如何在電信app上綁定親情號 瀏覽:376
安卓的怎麼用原相機拍月亮 瀏覽:805
配音秀為什麼顯示伺服器去配音了 瀏覽:755
c盤清理壓縮舊文件 瀏覽:325
app怎麼交付 瀏覽:343