//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