第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在iPhone中將NSData轉換為字節(jié)數(shù)組?

如何在iPhone中將NSData轉換為字節(jié)數(shù)組?

海綿寶寶撒 2019-10-28 15:04:46
我想轉換NSData為字節(jié)數(shù)組,因此編寫以下代碼:NSData *data = [NSData dataWithContentsOfFile:filePath];int len = [data length];Byte byteData[len];byteData = [data bytes];但是最后一行代碼彈出一個錯誤,提示“分配中的類型不兼容”。那么將數(shù)據(jù)轉換為字節(jié)數(shù)組的正確方法是什么?
查看完整描述

3 回答

?
婷婷同學_

TA貢獻1844條經(jīng)驗 獲得超8個贊

您不能使用變量聲明數(shù)組,因此Byte byteData[len];將無法使用。如果要從指針復制數(shù)據(jù),則還需要memcpy(它將遍歷指針指向的數(shù)據(jù)并將每個字節(jié)復制到指定的長度)。


嘗試:


NSData *data = [NSData dataWithContentsOfFile:filePath];

NSUInteger len = [data length];

Byte *byteData = (Byte*)malloc(len);

memcpy(byteData, [data bytes], len);

這段代碼將動態(tài)地將數(shù)組分配給正確的大?。╢ree(byteData)完成后必須提供),并將字節(jié)復制到其中。


getBytes:length:如果要使用固定長度的數(shù)組,也可以按照其他人的指示使用。這樣可以避免malloc / free,但是擴展性較差,更容易出現(xiàn)緩沖區(qū)溢出問題,因此我很少使用它。


查看完整回答
反對 回復 2019-10-28
?
梵蒂岡之花

TA貢獻1900條經(jīng)驗 獲得超5個贊

您也可以只使用它們所在的字節(jié),將其轉換為所需的類型。


unsigned char *bytePtr = (unsigned char *)[data bytes];


查看完整回答
反對 回復 2019-10-28
?
SMILET

TA貢獻1796條經(jīng)驗 獲得超4個贊

已經(jīng)回答,但可以概括一下以幫助其他讀者:


    //Here:   NSData * fileData;

    uint8_t * bytePtr = (uint8_t  * )[fileData bytes];


    // Here, For getting individual bytes from fileData, uint8_t is used.

    // You may choose any other data type per your need, eg. uint16, int32, char, uchar, ... .

    // Make sure, fileData has atleast number of bytes that a single byte chunk would need. eg. for int32, fileData length must be > 4 bytes. Makes sense ?


    // Now, if you want to access whole data (fileData) as an array of uint8_t

    NSInteger totalData = [fileData length] / sizeof(uint8_t);


    for (int i = 0 ; i < totalData; i ++)

    {

        NSLog(@"data byte chunk : %x", bytePtr[i]);

    }


查看完整回答
反對 回復 2019-10-28
  • 3 回答
  • 0 關注
  • 1603 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號