//h file
struct runSTRUCT{
NSDate *RunDateTime;
} ;
//m file
struct runSTRUCT run;
- (void)viewDidLoad {
[super viewDidLoad];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeStyle = NSDateFormatterNoStyle;
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm"];
run.RunDateTime = [dateFormatter dateFromString:@"12/02/2012 12:22"];
NSString *dateTimeStr = [dateFormatter stringFromDate:run.RunDateTime];
[dateFormatter release];
}
这一切正常。然后当我点击一个按钮并从日期开始创建一个字符串时,它会给我EXC_BAD_ACCESS。结构中的NSDate可能会发生内存泄漏
-(IBAction)respondButtonPressed:(id)sender{
NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
dateFormatter2.timeStyle = NSDateFormatterNoStyle;
[dateFormatter2 setDateFormat:@"MM/dd/yyyy HH:mm"];
NSString *dateTimeStr = [dateFormatter2 stringFromDate:run.RunDateTime];
[dateFormatter2 release];
}
当我看在控制台和打印的说明,一般显示了两个1件事:
正在调试的程序信号,同时在从GDB调用的函数。 GDB已将上下文恢复到调用之前的状态。 要更改此行为,请使用“set unwindonsignal off” 对包含函数(CFShow)的表达式的评估将被废弃。 正在调试的程序在从GDB调用的函数中发出信号。 GDB已将上下文恢复到调用之前的状态。 要更改此行为,请使用“set unwindonsignal off” 对包含函数(CFShow)的表达式的评估将被废弃。
或者“run.runDateTime”是一些随机变量
编辑:我不知道如果我在正确的地方放这些,因为它仍然无法正常工作(我可能没)。
- (void)viewDidLoad {
[super viewDidLoad];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeStyle = NSDateFormatterNoStyle;
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm"];
run.RunDateTime = [dateFormatter dateFromString:@"12/02/2012 12:22"];
NSString *dateTimeStr = [dateFormatter stringFromDate:run.RunDateTime];
[run.RunDateTime retain];
[dateFormatter release];
}
-(IBAction)respondButtonPressed:(id)sender{
NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
dateFormatter2.timeStyle = NSDateFormatterNoStyle;
[dateFormatter2 setDateFormat:@"MM/dd/yyyy HH:mm"];
NSString *dateTimeStr = [dateFormatter2 stringFromDate:run.RunDateTime];
[dateFormatter2 release];
}
我也有一对NSString在结构中,他们工作正常。
run - > RunDateTime ...试试这个。这是您通常如何访问结构中的数据。 – 2012-03-08 15:13:14
这似乎并没有工作。 run-> RunDateTime并运行 - > RunDateTime都提出了'无效类型参数' - >' – Kevin 2012-03-08 16:31:12
您只需要在viewDidLoad方法中保留。 – lnafziger 2012-03-08 17:01:52