获取Objective C中静态C数组的长度

时间:2016-05-30 20:44:03

标签: ios objective-c c

我的实现文件中定义了NSString的静态数组,如下所示:

NSString * const knames[] = { @"", @"", @"", ..., @"" };

我想做的是动态动态。由于这是一个C数组,lengthcount无效,所以我尝试使用sizeof

int count = (sizeof knames) / (sizeof knames[0]);

但是,它会产生错误消息:Invalid application of 'sizeof' to an incomplete type 'NSString *const _strong[]'有任何建议吗?

1 个答案:

答案 0 :(得分:0)

小错字; sizeof需要括号:

/*const?*/ int count = sizeof(knames) / sizeof(knames[0]);

您可以在全球某处创建一个宏:

#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
...

const int count = ARRAY_SIZE(knames);