【发布时间】:2014-08-18 04:29:56
【问题描述】:
我只是在学习 Objective C 并编写一个程序来帮助人们学习弹吉他。我想创建一个包含(几乎)吉他琴颈上所有音符的二维数组。由于吉他上有六根弦,一个八度有十二个音符,我创建了一个 6 x 12 阵列。 编辑:解决方案现在位于底部
这里的意图是将数组读取为 (string),(fret number)。
int strings[6][12] = {
{ {0, 8},{0, 9},{0, 10},{0, 11} ,{0, 12} ,{0, 1}, {0, 2},{0, 3},{0, 4},{0, 5},{0, 6},{0, 7} },
{ {1, 3},{1, 4},{1, 5},{1, 6},{1, 7},{1, 8,},{1, 9},{1, 10},{1, 11} ,{1, 12},{1, 1},{1, 2} },
{ {2, 12},{2, 1},{2, 2},{2, 3},{2, 4},{2, 5},{2, 6},{2, 7},{2, 8},{2, 9},{2, 10},{2, 11} },
{ {3, 6}, {3, 7} , {3, 8} , {3, 9} ,{3, 10} ,{3, 11} ,{3, 12} ,{3, 1} ,{3, 2} ,{3, 3} ,{3, 4} ,{3, 5} },
{ {4, 1} ,{4, 2} ,{4, 3} ,{4, 4} ,{4, 5} ,{4, 6} ,{4, 7} ,{4, 8} ,{4, 9} , {4, 10} ,{4, 11} ,{4, 12} },
{ {5, 9},{5, 10},{5, 11} , {5, 12} ,{5, 1},{5, 2},{5, 3},{5, 4},{5, 5},{5, 6},{5, 7},{5, 8} }
};
问题是,XCode 会抛出警告:“数组初始值设定项中的多余元素”。我究竟做错了什么?我数了无数次元素,仍然摸不着头脑。
【问题讨论】:
-
你真正想要的似乎是一个由 6 个数组组成的数组,由 12 个数组组成,由 2 个整数组成。
-
从@JoachimPileborg 的正确答案中提供更多细节 - 使用 int strings[6][12][2] = ...
-
通常当我看到 N 维数组时,我会想到“缺少对象”。也许你真正想要的是一个名为 Strings 的 NSObject 子类数组,也许它们有一个名为 Frets 的自定义对象数组,等等。
标签: objective-c arrays multidimensional-array compiler-warnings