2011-10-11 36 views
0

比如,我想通過一個指數來獲得NSMutableData的實例的值,我應該怎麼做我不喜歡這樣寫道:iphone NSMutableData字節的索引

Byte *tempByte = (Byte*)malloc(1); 
memcpy(tempByte, [[nsmutabledata subdataWithRange:NSMakeRange(5, 5)] bytes], 1) ; 

但我認爲這不是一個好方法。 更新: 我已經解決了problem.thank你......

回答

0
NSData *data = [NSData dataWithContentsOfFile:filePath]; 
NSUInteger len = [data length]; 
Byte *byteData = (Byte*)malloc(len); 
memcpy(byteData, [data bytes], len); 

此代碼將動態數組分配給正確的大小(你必須釋放(byteData)當你完成),然後複製字節進去。

如果您想使用固定長度的數組,您也可以使用getBytes:len:如其他人所示。這避免了malloc/free,但不易擴展,更容易發生緩衝區溢出問題,所以我很少使用它。

+0

你不明白我的問題是什麼意思 – Gaojian922188

+0

是好方法使用,我很少使用它 – Marios