【问题标题】:append a NSString converted from dictionary object to NSMutableArray将从字典对象转换的 NSString 附加到 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 长度]:.......

有人可以帮帮我吗?

【问题讨论】:

    标签: ios nsstring nsdate nsdictionary nsmutablestring


    【解决方案1】:

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

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

    【讨论】:

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