字符串崩溃设备的日期

时间:2011-04-07 11:44:38

标签: iphone nsdate

我正在阅读RSS并从那里获得一个元素: <pubDate>星期四,2011年4月7日13:37:41 +0000 </pubDate> 我使用以下代码将收到的字符串转换为NSDate

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];  

        [dateFormatter setDateFormat:@"E, d LLL yyyy HH:mm:ss Z"]; // Thu, 18 Jun 2010 04:48:09 -0700 


        NSDate *date = [dateFormatter dateFromString:[self.currentDate stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]];        

        [item setObject:date forKey:@"date"]; 

代码在模拟器中完美运行,但在设备上崩溃。原因是NSDate对象保持为零,当我将其添加到字典时,它会使应用程序崩溃。

我读了很多关于这个问题,但没有一个解决方案适合我。我的意思是他们很多,但在模拟器......

任何帮助表示赞赏, 卢卡 ...

2 个答案:

答案 0 :(得分:1)

检查两件事以消除模拟器和ios设备之间的差异。

  1. iOS设备区分大小写。因此,如果出现问题,您必须检查字符串。

  2. 区域设置可能与您的模拟器和iOS不同。防止这个定义日期格式化程序的正确区域设置。

    NSLocale * usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@“en_US”];

    [dateFormatter setLocale:usLocale];

答案 1 :(得分:0)

通过

测试格式化程序的行为
[dateFormatter dateFromString:[NSDate date]]

如果它不是格式化程序的格式,则意味着你的nsstring是应该责备的。

您可以记录您要转换的字符串吗?这可能是错误的那个

NSLog(@"string is: %@", self.currentDate);