我想從父級設置子視圖控制器(DateViewController)的屬性,並在第二次訪問時發生錯誤。這是代碼。這是DateViewController.h。問題在於selectedDate屬性: IOS設置Viewcontroller屬性訪問錯誤
裏面DateViewController.m,我綜合selectedDate。現在在父視圖控制器(ComdataIOSViewController.m)中,我將DateViewController的selectedDate屬性設置爲變量receiptDate,它在ComdataIOSViewController.h的@interface部分中聲明爲NSDate *。這是ComdataIOSViewController.m的一個片段:
- (void)viewDidLoad
{
[super viewDidLoad];
receiptDate = [NSDate date];
}
-(IBAction)btnSetDate {
dlgDate=[[DateViewController alloc] initWithNibName:nil bundle:nil];
dlgDate.selectedDate = receiptDate;
dlgDate.myDelegate = self;
[self presentModalViewController:dlgDate animated:true];
[dlgDate release];
}
-(void) dateViewControllerDismissed:(NSDate *)selectedDate
{
NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease];
[dateFormat setDateStyle:NSDateFormatterShortStyle];
receiptDate = selectedDate;
dateString = [dateFormat stringFromDate:receiptDate];
lblDate.text = dateString;
}
所以我第一次單擊父控制器上設定的日期按鈕,在出現DateViewController,我選擇從日期選擇器控制權的日期,以及控制器駁回。在父視圖控制器中,dateViewControllerDismissed被調用,並將receiptDate設置爲selectedDate參數。下次我點擊日期按鈕時,出現錯誤的訪問錯誤,我將DateViewController的selectedDate屬性設置爲receiptDate。我假設這是某種內存問題,我沒有正確處理。 IOS編程對我來說仍然是新的。
我應該提到,我以前確實有財產設置保留,它沒有任何區別(即使你是正確的 - 它應該被設置爲保留)。下面的答案解決了我的問題。 – Bob
很高興您解決了您的問題。 :) –