getterや設定に問題があり、呼び出されていません。私は彼らがどのように働いているか理解していると思っていましたが、問題があるように見えます...Obj-C、なぜ私のゲッターとセッターは動作していないのですか?
私はselectボタンを使用する前にDateRangeControllerビューを初期化していませんが、そのnilを知っていればviewDidLoad 。私はそれを初期化する必要がある場合、どのようにnibファイルなどを設定するのですか?
これは私が値を設定し、私の選択/子画面相続値
@interface PieChartViewController : UIViewController {
DateRangeController *nextController;
}
@property (nonatomic, retain) DateRangeController *nextController;
@implementation PieChartViewController
@synthesize nextController;
-(void)viewWillAppear:(BOOL)animated {
if ([nextController StartDate] == nil) {
[nextController setStartDate:[NSDate date]];
}
// DBStartDate returns nil and yes convertNSDateToDBStringDate works !
NSString* DBStartDate = [General convertNSDateToDBStringDate:
[nextController StartDate]];
}
- (void) selectRangeButtonPressed {
nextController = [[[DateRangeController alloc]
initWithNibName:@"DateRange" bundle:nil] autorelease];
nextController.title = @"Date Range";
}
を得ている私の親画面、です。あなたはviewWillAppearでたstartDateを格納するnextControllerが必要な場合は、:
if(![value isEqualToDate: returnStartDate]) { ...}
EDIT: - "!=" 演算子の関数の代わりに -
@interface DateRangeController : UIViewController {
NSDate *returnStartDate;
}
-(NSDate*) StartDate;
-(void)setStartDate:(NSDate*) value;
@end
@implementation DateRangeController
-(NSDate*) StartDate {
return returnStartDate;
}
-(void)setStartDate:(NSDate*) value {
if (value != returnStartDate) {
[value retain];
[returnStartDate release];
returnStartDate = value;
NSLog(@"StartDate=%@", returnStartDate);
}
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)
nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
// Custom initialization
returnStartDate = nil;
}
return self;
}
- (void)dealloc {
[returnStartDate release];
}
私はあなたが欠けていたと思う**非公開、非保持DateRangeController * nextController; ** – EmptyStack
あなたは本当にあなたの関数と変数を小文字で始めるべきです。クラスは大文字で始める必要があります。コード倫理:) – Jake
申し訳ありません@サイモン、上に貼り付けることを忘れて、私はそれを持っています。 @MiRAGe良い点! – Jules