所以我正在使用RSS提要制作日历,其中事件的日期是rss帖子的标题。我将代码转换为可用日期,然后是整数,以选择表格单元格图像的图像。但是,标题不是像这样设置的字符串: 我试图提取标题,将其转换为日期,将其格式化为月份的日期,即如果帖子标题是01232011,它会将其格式化为只有23的日期,然后是if语句将指定为单元格设置的图像,因此它就像if(dateChooser == 23)那样它将单元格的图像设置为Cal23.png。所以我正在制作一个桌面视图日历。帖子的标题实质上是指定为该单元格设置的日历图标。但我无法正确阅读@“标题”。
[item setObject:currentTitle forKey:@"title"];
我需要@“title”等于NSString才能工作。
完整代码
NSString *dateStr = @"title"
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMddyyyy"];
NSDate *date = [dateFormat dateFromString:dateStr];
// Convert date object to desired output format
[dateFormat setDateFormat:@"dd"];
dateStr = [dateFormat stringFromDate:date];
int dateChooser;
dateChooser = [dateStr intValue];
[dateFormat release];
cell.textLabel.text = dateStr;
cell.detailTextLabel.text = [[stories objectAtIndex:indexPath.row] objectForKey:@"summary"];
if (dateChooser == 1) {
UIImage* theImage = [UIImage imageNamed:@"cal1.png"];
cell.imageView.image = theImage;
[theImage release];
}if (dateChooser == 2) {....
但是@“title”不是字符串。我用NSString * dateStr = @“10012011”测试了它;哪个有效,我正在使用的博客中的帖子标题是10012011
答案 0 :(得分:1)
由于您的标题似乎是某种格式,为什么不这样做:
// gets @"23" out of @"01232011"
NSString *dayOfMonthString = [title substringWithRange: NSMakeRange(2, 2)];
int dateChooser = [dayOfMonthString intValue];
cell.textLabel.text := dayOfMonthString;
cell.detailTextLabel.text =
[[stories objectAtIndex: indexPath.row] objectForKey: @"summary"];
// No need for a huge switch statement here, just load "cal%d.png", where %d is
// the value of dateChooser:
cell.imageView.image =
[UIImage imageNamed: [NSString stringWithFormat: @"cal%d.png", dateChooser]];
你可能想通过暂时尝试将其转换为 NSDateFormatter 的日期来检查字符串的格式是否真的MMddyyyy
,就像你做的那样在你的代码中。但如果这是有保证的,则无需使用 NSDateFormatter 。