将从字典对象转换的 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