2012-05-04 89 views
9

嗨:)我正在尝试创建一个NSStrings的静态C数组。Objective-C静态内联NSString数组

这是我的尝试:

static NSString** polygonNames = {@"Radical Isotope", @"Point", @"Line", @"Triangle", @"Square", @"Pentagon", @"Hextagon", @"Heptagon", @"Octagon", @"Nonagon", @"Decagon", @"Hendecagon", @"Dodecagon", @"Tridecagon", @"Tetradecagon", @"Pentadecagon", @"Hexadecagon", @"Heptadecagon", @"Octadecagon", @"Enneadecagon"}; 

没有编译器错误,但我得到41级的警告,所有这些都是三者之一以下:

"warning: initialization from incompatible pointer type" 
"warning: excess elements in scalar initializer" 
"warning: (near initialization for 'polygonNames')" 

这使我相信当我使用这个类时,会出现大量的sigbarts或其他内存访问错误...

什么是正确的方式来初始化静态数组NSStrings(最好内联,我想用C数组,而不是NSArrays)?

回答

29

试试这个:

static NSString *polygonNames[] = { @"Radical Isotope", @"Point", @"Line", /* etc */ }; 
+1

啊谢谢。我习惯了我的编程范例类,必须将void *转换为int **等,等等...... –

+0

现在建立警告,谢谢! :D –