Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 删除无符号字符的第一个字节*_Ios_Objective C_Uiimage_Bytearray_Unsigned Char - Fatal编程技术网

Ios 删除无符号字符的第一个字节*

Ios 删除无符号字符的第一个字节*,ios,objective-c,uiimage,bytearray,unsigned-char,Ios,Objective C,Uiimage,Bytearray,Unsigned Char,我目前正在做一个项目,需要处理未签名字符*和不需要的字节。我将描述这种情况: 1/我有一个加载图像(UIImage)的iOS应用程序 2/I将此UIImage转换为无符号字符*(感谢PaulSoft提供的ImageHelper 3/我将这个未签名字符*发送到一个在图像上施展魔法的库 4/库向我发回一个无符号字符*,该字符在数组的开头带有补充信息 现在我来了。我想删除这个数组的13个第一字节,但我不知道怎么做。 我试着把它转换成一个NSString*,裁剪它然后取回。NSData*也是一样。 我绝

我目前正在做一个项目,需要处理未签名字符*和不需要的字节。我将描述这种情况:

1/我有一个加载图像(UIImage)的iOS应用程序

2/I将此UIImage转换为无符号字符*(感谢PaulSoft提供的ImageHelper

3/我将这个未签名字符*发送到一个在图像上施展魔法的库

4/库向我发回一个无符号字符*,该字符在数组的开头带有补充信息

现在我来了。我想删除这个数组的13个第一字节,但我不知道怎么做。 我试着把它转换成一个NSString*,裁剪它然后取回。NSData*也是一样。 我绝对不是Objective-C方面的专家,所以我愿意接受你的所有想法。如果我不够清楚,请随时问我任何问题

致以最良好的祝愿


Chris.

正如@HotLicks在他的评论中所说,最简单的方法是创建一个新的字符指针,将13个字节进一步指向缓冲区:

char* newPointer = oldPointer + 13;
您可能需要保留原始指针,以便在使用完内存块后可以释放它。(如果您使用
malloc()
,{or
calloc()
,或其中一个相关函数}或您正在使用的库创建了缓冲区,则需要调用
free()
,在缓冲区上释放缓冲区。您正在使用的库中的文档应该告诉您是否需要释放缓冲区。这很重要。)

您也可以使用C函数memmove()将块的结尾复制到13个字节,但没有真正的理由这样做。(您不应该使用相关函数
memcpy()
,因为当移动的源和目标重叠时,它可能无法正常工作。)

编辑:
@HotLicks,你真的应该把你的评论作为一个答案发布,这样OP就可以接受你的评论了。因为你是第一次发布它,所以你应该为此获得荣誉。

这与Objective-C无关——这是一个基本的C编程问题。在处理Objective-C之前先学习C。(答案是
newBufferPointer=oldBufferPointer+13;
)最简单的方法是将除前13个字节之外的所有内容复制到一个新数组中(或者忽略它们)。好吧,我现在觉得自己太愚蠢了……我已经尝试了很多(我是说很多)在这里或网络上找到的东西,解决方案就这么简单。无论如何,谢谢大家的热舔,我将检查这个答案,作为一个好的回答(因为我不能在评论中这样做)。