需要将RSS帖子标题转换为NSString

时间:2011-09-05 20:43:46

标签: objective-c nsstring nsdate nsdateformatter

所以我正在使用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

1 个答案:

答案 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