将从字典对象转换的 NSString 附加到 NSMutableArray

Posted

技术标签:

【中文标题】将从字典对象转换的 NSString 附加到 NSMutableArray【英文标题】:append a NSString converted from dictionary object to NSMutableArray 【发布时间】:2013-01-11 01:46:48 【问题描述】:

这个问题困扰我很久了。

我有一个从 RSS 解析器接收的 NSString,我可以在屏幕上成功 NSlog 它,但是当我尝试将它附加到现有的 NSmutablearray 时,它会导致异常。

这是我的代码。

//mystring is a NSMutableString with some content initialized succesfully

NSString *myDate = [dic objectForKey:@"date"];
NSLog(@"%@ and %@",myString,myDate);
[myString appendString:myDate];

直到 NSLog,myDate 和 myString 都按照我的意愿正确打印在屏幕上,但是 appendString 行会导致错误

[_NSDate 长度]:无法识别的选择器发送到实例 0*7141a00 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSDate 长度]:.......

有人可以帮帮我吗?

【问题讨论】:

【参考方案1】:

您使用myDate 调用-appendString:,这不是字符串。这是一个NSDate。您不能将其传递给需要字符串的 API。您需要以某种方式将其转换为字符串。这可能最好使用NSDateFormatter 来完成,它可以让您完全控制如何将日期格式化为字符串。

不过,出于测试目的,您可以将最后一行替换为 [myString appendString:[myDate description]],它应该会停止崩溃。

【讨论】:

确实!仅仅因为当我将 myDate 初始化为 NSString 时没有例外,这让我误以为 dic 对象日期是一个 NSString,而它实际上是一个 NSDate。更改为 NSDate *myDate = [dic objectForKey:@"date"],并使用格式化程序的 stringFromDate,然后我可以成功附加它。不要忘记为您的格式化程序设置 Dateformat,否则它将无法工作。

以上是关于将从字典对象转换的 NSString 附加到 NSMutableArray的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode Playground 中将 NSString 转换为 CString

NSData 从 NSKeyedArchiver 到 NSString

将字典对象附加到 UITableViewCell

如何迭代数据列的每个单元格,转换和附加每个单元格?

附加到 JSON 字典

我将一些数据发送到 web 服务,它返回一些 JSON 作为 NSData。如何转换为字典?(iOS 4.3)