在我读书的时候,我看到了这一点:
static NSString *randomNounList[3];
是否会生成一个名为NSString
的{{1}}指针数组?
答案 0 :(得分:3)
是的,这会产生一个指向NSString的3个指针的数组,你可以自由地将它作为普通数组使用。
请记住,与objective-c容器不同,普通数组不保留其元素,并且您必须自己维护所有内存管理问题(例如,保留字符串以确保不会过早释放,并在不执行时释放它们需要他们)。
答案 1 :(得分:1)
它既不是NSArray也不是NSString - 它是指向NSStrings的普通C数组指针。这不是一个对象;它只是一块内存块,有三个指针的空间。
使用像这样的Cocoa对象的C数组通常(但并非总是)IMO是一个坏主意。在C中,C数组很麻烦。当你添加Cocoa更复杂的内存管理语义时,除非你将数组包装在类似NSArray的接口中,否则管理所有内容可能会很棘手 - 如果你这样做,你为什么不只是使用NSArray?