如何将cstring转换为NSString? [英] How do you convert cstring to NSString?

查看:149
本文介绍了如何将cstring转换为NSString?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经能够找到 - [NSString stringWithCString:encoding:] 的方法,但是当cstring是一个指针时,它们似乎不能很好地工作。

解决方案

首先,不要使用 initWithCString ,它已被弃用。 / p>

有几种方法可以做到:

  const * char cString =Hello; 
NSString * myNSString = [NSString stringWithUTF8String:cString];

如果您需要其他编码,如ASCII:

  const * char cString =Hello; 
NSString * myNSString = [NSString stringWithCString:cString encoding:NSASCIIStringEncoding];

如果要查看所有可用的字符串编码,请在Xcode中按住命令+选项,然后在上面的代码块中的 NSASCIIStringEncoding 上双击



您将能够看到苹果已经声明他们的字符串编码类型的枚举。



您可能需要的其他一些:

  NSASCIIStringEncoding 
NSUnicodeStringEncoding //与NSUTF16StringEncoding相同
NSUTF32StringEncoding

Checkout Apple的 NSString类别参考(编码位于页面底部)


I have been able to find methods like -[NSString stringWithCString:encoding:] but they do not seem to play well when the cstring is a pointer.

解决方案

First up, don't use initWithCString, it has been deprecated.

Couple of ways you can do this:

const *char cString = "Hello";
NSString *myNSString = [NSString stringWithUTF8String:cString];

If you need another encoding like ASCII:

const *char cString = "Hello";
NSString *myNSString = [NSString stringWithCString:cString encoding:NSASCIIStringEncoding];

If you want to see all the string encodings available, in Xcode, hold command + option then double click on NSASCIIStringEncoding in the above code block.

You will be able to see where Apple have declared their enumeration for the string encoding types. Bit quicker than trying to find it in the documentation.

Some other ones you might need:

NSASCIIStringEncoding
NSUnicodeStringEncoding // same as NSUTF16StringEncoding
NSUTF32StringEncoding

Checkout Apple's NSString Class Reference (encodings are at the bottom of the page)

这篇关于如何将cstring转换为NSString?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆