我正在阅读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对象保持为零,当我将其添加到字典时,它会使应用程序崩溃。
我读了很多关于这个问题,但没有一个解决方案适合我。我的意思是他们很多,但在模拟器......
任何帮助表示赞赏, 卢卡 ...
答案 0 :(得分:1)
检查两件事以消除模拟器和ios设备之间的差异。
iOS设备区分大小写。因此,如果出现问题,您必须检查字符串。
区域设置可能与您的模拟器和iOS不同。防止这个定义日期格式化程序的正确区域设置。
NSLocale * usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@“en_US”];
[dateFormatter setLocale:usLocale];
答案 1 :(得分:0)
通过
测试格式化程序的行为[dateFormatter dateFromString:[NSDate date]]
如果它不是格式化程序的格式,则意味着你的nsstring是应该责备的。
您可以记录您要转换的字符串吗?这可能是错误的那个
NSLog(@"string is: %@", self.currentDate);