我需要在objective-c中使用这个数组。如何在objective-c中将其声明为显式数组?

时间:2014-07-10 10:17:55

标签: objective-c

int8_t aLawCompressTable[64] = {1,1,2,2,3,3,3,3, 
        4,4,4,4,4,4,4,4, 
        5,5,5,5,5,5,5,5, 
        5,5,5,5,5,5,5,5, 
        6,6,6,6,6,6,6,6, 
        6,6,6,6,6,6,6,6, 
        6,6,6,6,6,6,6,6, 
        6,6,6,6,6,6,6,6, 
        7,7,7,7,7,7,7,7, 
        7,7,7,7,7,7,7,7, 
        7,7,7,7,7,7,7,7, 
        7,7,7,7,7,7,7,7, 
        7,7,7,7,7,7,7,7, 
        7,7,7,7,7,7,7,7, 
        7,7,7,7,7,7,7,7, 
        7,7,7,7,7,7,7,7 };

我从一些java代码获得这些数据,需要在我的objective-c类中使用它。

1 个答案:

答案 0 :(得分:1)

最简单的答案是“不要那样做”。您应该以当前形式将其用作C数组。 a-law压缩使用查找表的唯一原因是速度 - 通过将其转换为NSArray会丢失。

然而,在回答你的问题时:

这是一个单维数组

NSArray *a = @[ @(1), @2, @3 ];

对数组使用@ [],对NSNumber使用@(1)(或只是@)(不能在NSArray中放置基本类型)。

你也可以用@ {}

做词典
NSDictionary *b = @{ @1: @2,  @3: @4};

最后,您可以根据需要多次嵌套:

这是一个多维数组

NSArray *a = @[ 
               @[ @1, @1 ],
               @[ @2, @2 ] ];