[英]How to remove bytes from the end of NSMutableData object
我有一個NSMutableData對象,給我一些麻煩,我試圖從這個對象中刪除最后6個字節
NSMutableData *reducedDataPacket = [[NSMutableData alloc] init];
reducedDataPacket = [myCompressedData copy];
NSRange range = NSMakeRange([reducedDataPacket length]-6, 6);
[reducedDataPacket replaceBytesInRange:range withBytes:NULL length:0];
但是,一旦最后一行執行我的應用程序崩潰,我將在下面留下此錯誤。
-[NSConcreteData replaceBytesInRange:withBytes:length:]: unrecognized selector sent to instance 0x1f037870
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteData replaceBytesInRange:withBytes:length:]: unrecognized selector sent to instance 0x1f037870
我之前從未嘗試過這樣做,並且已經離開了我調查過的其他回答,但是我無法讓這個工作......任何幫助將不勝感激。
您的第一行是無用的,因為您在第二行重新定義reducedDataPacket,因此應刪除第一行。 我猜測myCompressedData是NSData而不是NSMutableData,所以將第二行更改為:
NSMutableData *reducedDataPacket = [myCompressedData mutableCopy];
首先,您需要一個可變實例,不清楚為什么要創建一個然后復制它。 你應該這樣做:
NSMutableData *reducedDataPacket = [myCompressedData mutableCopy];
然后你想減少長度,而不是試圖填充部分數據:
[reducedDataPacket setLength:(reducedDataPacket.length - 6)];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.