【问题标题】:How to encode and decode the string properly?如何正确编码和解码字符串?
【发布时间】:2017-05-22 10:24:30
【问题描述】:

我从 Web 服务获取字典,该字典包含编码的键值对。我使用了一些代码来解码这个键值。

代码编号1:

[NSString stringWithUTF8String:[[dict valueForKey:@"desc"] cStringUsingEncoding:[NSString defaultCStringEncoding]]];

但是当我运行这段代码时它会崩溃并得到错误[NSString stringWithUTF8String:]: NULL cString'

在调试它时,字典包含键和值以及“desc”具有值的键。

另一方面,我有一个运行良好的代码。

代码编号2:

[NSString stringWithFormat:@"%@",[dict valueForKey:@"desc"]];

但在我的应用程序中几乎所有地方,我都使用了代码 1,它运行良好。

现在我完全混淆了这个错误[NSString stringWithUTF8String:]: NULL cString' 在我检查字典是否包含键和值时出现。

【问题讨论】:

  • stringWithFormat 用于 TypeCasting 和格式化字符串而不是用于解码和编码。
  • 请显示您的字符串/字典的定义,并让我们知道您想要解码/编码的内容。

标签: ios objective-c dictionary nsstring


【解决方案1】:

为什么要从NSString 创建一个C-String,然后从C-String(返回)NSString

为什么不简单

NSString *desc = dict[@"desc"];

而且——一如既往——不要使用valueForKey,除非你能解释为什么你明确需要KVC。

【讨论】:

    猜你喜欢
    • 2019-07-30
    • 1970-01-01
    • 2016-04-04
    • 2021-10-27
    • 2012-07-05
    • 1970-01-01
    • 2013-07-12
    相关资源
    最近更新 更多