2012-01-20 71 views
24

我有一個原始的NSData類型,其中包含100字節。我想獲得其他NSData類型。第一個包含100的前20個字節,第二個包含另外80個。 它們應該從原始的NSData複製。對不起,如果我不太清楚,但我對Objective-C很新。將NSData字節數組的一部分複製到另一個NSData類型

+0

使用'NSData'的' - (NSData的*)subdataWithRange:(NSRange)範圍;' – 2012-01-20 09:52:32

回答

57

您可以使用NSData-(NSData *)subdataWithRange:(NSRange)range;做到這一點。
從你的例子,這裏是一些代碼:

// original data in myData 
NSData *d1 = [myData subdataWithRange:NSMakeRange(0, 20)]; 
NSData *d2 = [myData subdataWithRange:NSMakeRange(20, 80)]; 

當然,範圍是直接在這裏,你可能會做計算,使它成爲你的實際代碼工作。

+0

感謝文斯,你對我這麼有用! – Mateo

2
NSData *mainData = /*This is you actual Data*/ 

    NSData *fPart = [mainData subdataWithRange:NSMakeRange(0, 20)]; 
    NSData *sPart = [mainData subdataWithRange:NSMakeRange(20, 80)]; 

相反,80,你可以使用一些動態 - 如數據lenth

+1

爲什麼不能得到20-79?你確定? –

+1

@AlBeebe別擔心......我確信我已經不止一次地做過同樣的事情,而且您注意到這一事實意味着現在是時候清理過時的評論了。乾杯。 – Caleb

2

斯威夫特3

let subdata1 = data?.subdata(in: 0..<20) 
let subdata2 = data?.subdata(in: 20..<80) 

由於這個問題是在谷歌搜索的最頂端,我想在這裏寫的例如,對於迅速