2010-11-22 61 views
0

在Java中,我会将字节传递为byte [],它也知道它是自己的长度。 在Objective C中是否有等价的数组?Objective-C等价于java字节[]

我不确定,但NSArray看起来太重了,因为它可以容纳任何类型。

回答

2

我认为最接近的是NSMutableData及其mutableBytes属性。这会给你一个附加长度计数的C风格数组。唯一的一点复杂性是,尽管你可以通过mutableBytes读取和修改条目,但如果你想要缓冲区增长,你需要使用appendBytes:length:来增加额外的字节到最后。

+0

看起来就像我需要的,谢谢。 – 2010-11-22 11:43:11

0

我认为Tommy有正确的答案,但值得注意的是,您也可以使用原始C数据类型(即在这种情况下为char*)。当事情变得很低时 - 当你谈论单个字节时可能会出现这种情况 - 避免一些更聪明的东西可能会表现更好。

+0

我同意;最近我需要跟踪一大堆代表像素位置的BOOL值,并且发现具有二维字节数组的速度明显快于使用“NSArray”或“NSDictionary”来达到同样的目的。 – sapi 2013-07-04 01:07:05

+0

你可以将它们包装在NSValue中 – uchuugaka 2013-07-04 04:45:46

0

我也认为@Tommy有正确的答案,但也值得考虑内置的存储类是经过大量优化。除非您确信性能会成为问题,否则使用NSMutableArray可能会更容易,并且在您显示出存在性能问题后才会离开。如果您需要存储原始值,请参阅CFMutableArray

+3

我不认为NSMutableArray适合存储字节值数组。每个字节必须包装在一个NSValue中才能进入数组。 NSData或NSMutableData在这里是正确的。 – JeremyP 2010-11-22 16:06:12