所以我想知道,是否有一些快速的方法將一個填充了NSString的NSArray轉換爲等價的UTF8string值?將一個填充了NSString的NSArray轉換爲一個UTF8String向量
我想將一些參數配置存儲在一個NSArray中,然後將它們用於以(int argv,const char * argv [])作爲參數的函數中。
我實現了這一個令人費解的方式
int argc = [gameParameters count];
const char **argv = (const char **)malloc(sizeof(const char*)*argc);
for (int i = 0; i < argc; i++) {
argv[i] = (const char *)malloc(sizeof(char)*[[gameParameters objectAtIndex:i] length]+1);
strncpy((void *)argv[i], [[gameParameters objectAtIndex:i] UTF8String], [[gameParameters objectAtIndex:i] length]+1);
}
,但我不是很滿意,並清理內存是乏味的。
你知道更好的方法來達到這個結果嗎?
您可能會發現'的strdup()'是不是'malloc' +'strncpy'簡單多了(雖然你仍然需要之後清理)。 –
是的,我在我的最終代碼中使用了strdup(https://code.google.com/p/hedgewars/source/browse/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m#132) – koda