我可以在单元格中放置日期字符串吗?

时间:2011-08-09 11:32:50

标签: objective-c uitableview date

我有点困在一个简单的代码:我想在我的表View中的一个单元格中放一个时钟,这可能吗?我有这个代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    [NSTimer scheduledTimerWithTimeInterval:1.0f 
                                     target:self 
                                   selector:@selector(updateTime:) 
                                   userInfo:nil repeats:YES];
}

- (void)updateTime:(id)sender{

    NSDate *StrDate = [NSDate date];
    NSDateFormatter *Dateformat = [[NSDateFormatter alloc]init];
    [Dateformat setDateFormat:@"DD-MM-YYYY HH:mm:ss"];
    NSMutableString *DateStr = [NSMutableString stringWithFormat:@"%@",[Dateformat stringFromDate:StrDate]];

    string = DateStr;
}
<。>在.h文件中,我创建了:

  

NSMutableString * string;

并且在cellForRow ...方法中,我把:

  

cell.textLabel.text = string;

所以这不起作用,你能解释一下为什么吗?

非常感谢

3 个答案:

答案 0 :(得分:1)

NSMutableString *DateStr = [NSMutableString stringWithFormat:@"%@",[Dateformat stringFromDate:StrDate]];

您正在创建一个自动释放的可变字符串。与

string = DateStr;

您将string的地址指定为DateStr的地址。当DateStr被自动释放时,该地址将在运行循环结束后指向无处。您可以使用

保留DateStr
string = [DateStr retain];

或使用

创建保留的DateStr
NSMutableString *DateStr = [[NSMutableString alloc] initWithFormat:@"%@",[Dateformat stringFromDate:StrDate]];

但是当字符串指向之前的地址时,你将再次泄漏。因此,您应该将字符串设为属性

@property (nonatomic, copy) NSMutableString *string;

并使用以下代码:

NSMutableString *DateStr = [NSMutableString stringWithFormat:@"%@",[Dateformat stringFromDate:StrDate]];

self.string = DateStr;

使用最后一行复制字符串。

答案 1 :(得分:0)

我认为您必须在tableview中重新加载数据:[self.tableView reloadData]。在string = DateStr;

之后执行此操作

答案 2 :(得分:0)

您是否尝试过将字符串分配给文本字段?

[cell.textField setStringValue: string];
相关问题