【问题标题】:Conversion NSString to const char string[]将 NSString 转换为 const char string[]
【发布时间】:2015-05-27 04:31:20
【问题描述】:
我有一个与查询相关的转化
我有一个 NSString 对象,其内容如下所示
NSString *string = @"do nothing";
现在我正在尝试在下面的代码中传递字符串,例如
const char inputString[] = string;
Xcode 显示错误
数组初始值设定项必须是初始值设定项列表或字符串字面量。
是否有相同的解决方法。
提前致谢,
【问题讨论】:
标签:
ios
objective-c
arrays
nsstring
character
【解决方案1】:
最简单的是使用 UTF-8 转换(它取代了旧的和长期弃用的- (const char *)cString 方法):
const char *Cstr = myObjCStr.UTF8String;
【解决方案2】:
试试这个
NSString *string = @"do nothing";
const char * inputString = [string UTF8String];
如果你想使用其他编码,使用这个cStringUsingEncoding
【解决方案3】:
如果你对 const char * inputString 这样的 C 数组不满意
那你可以试试下面的代码——
NSMutableArray *array = [[NSMutableArray alloc] init];
NSString *str = @"do nothing";
for (int i = 0; i < [str length]; i++) {
NSString *ch = [str substringWithRange:NSMakeRange(i, 1)];
[array addObject:ch];
}