我正在实施calendar作为我的应用程序的一部分,它在nslog中显示所选日期,但我需要将此值发送到标签, 它在nslog中显示的值为2011-02-08
我在ib中创建了一个标签,(并连接到它) 在* ViewController.h
中 IBOutlet UILabel *dateis;
* ViewController.m中的
- (void)calendarView:(KLCalendarView *)calendarView tappedTile:(KLTile *)aTile{
NSLog(@"Date Selected is %@",[aTile date]);
[aTile flash];
dateis = [aTile date];
}
但我收到警告>
Incompatible Objective-C types assigning 'struct KLDate *', expected 'struct UILabel *'
编辑,如果我使用
dateis.text = [aTile date];
我收到了警告
incompatible Objective-C types 'struct KLDate *', expected 'struct NSString *' when passing argument 1 of 'setText:' from distinct Objective-C type
KLDate是日历中定义日期的方式,
非常感谢!!
答案 0 :(得分:2)
您不能只将“日期”分配给“标签”......
您显然正在使用Appcelerator框架。 (KLDate
类型)
所以你要找的是:
dateis.text = [NSString stringWithFormat:@"%@", aTile.date];
stringWithFormat:
实际上会调用description
的{{1}}方法,因此您也可以使用等效方法:
KLDate
要查看KLDate.h并查看该方法,请返回一个 dateis.text = aTile.date.description;
,您可以将其分配给UILabel的良好属性(查看其文档)NSString *
如果您需要编写自己的代码来格式化日期,则应检查text
方法实现...
答案 1 :(得分:1)
尝试:
dateis.text = [aTile date];
答案 2 :(得分:1)
那么,NSLog可以将很多不同的类类型作为输入,它会找出它可以显示的内容。什么是KLTile?你如何将日期分配给KLTile,即从什么数据结构到什么数据结构。某处必须有NSString或格式化的NSDate。也许你可以在调试器中看到KLTile的内部结构。
答案 3 :(得分:1)
我只是觉得如果标签需要一个字符串,那么我会给它一个字符串,哈哈,所以,
- (void)calendarView:(KLCalendarView *)calendarView tappedTile:(KLTile *)aTile{
NSLog(@"Date Selected is %@",[aTile date]);
[aTile flash];
NSString *str =[NSString stringWithFormat:@"%@", [aTile date]];
dateis.text = str;
}