2012-10-22 3 views
0

날짜 선택 도구에서 날짜를 가져 오려고 할 때 uidatepicker를 사용하고 예외가 발생합니다.uidatepicker [__NSDate 날짜] : 인스턴스로 전송 된 인식 할 수없는 선택 자

.H 파일 : 나는 선택하거나 다시 탐색을 클릭하면

#import <UIKit/UIKit.h> 

@protocol TimeDelegate <NSObject> 
- (void)returnTime:(NSDate *)item; 

@end 

@interface TimeController : UIViewController <UIPickerViewDelegate> 
{ 
    UIDatePicker *timePicker; 
} 
@property (nonatomic, weak) id <TimeDelegate> delegate; 
@property (nonatomic, retain) IBOutlet UIDatePicker *timePicker; 
@property (nonatomic, retain) NSDate *activityTime; 
@end 

하는 .m 파일

#import "TimeController.h" 



@implementation TimeController 

@synthesize timePicker; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    self.timePicker = [NSDate date]; 

} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 
-(void) viewDidDisappear:(BOOL)animated 
{ 
    NSLog(@"%@", self.activityTime); 
    //NSDate *itemToPassBack = [self.timePicker date]; 
    [self.delegate returnTime:self.activityTime]; 
} 


- (IBAction)SelectTime:(id)sender { 
    self.activityTime = [timePicker date]; 
} 

@end 

오류가 발생합니다. 처음에는 viewdiddisappear 중에 날짜 선택 도구를 사용할 수 없다고 생각하고 예외가 발생했습니다. 선택 버튼도 똑같이 행동하고 나에게 틀린 뭔가가 있음을 의심스럽게 만들었습니다. viewDidLoad에서

+0

메시지를 읽으면 잘못된 정보를 알려줍니다. 그렇게 할 수 없다면 적어도 전체 메시지를 게시하여 잘못된 점을 알려줄 수 있습니다. –

답변

2

이 라인 :

self.timePicker = [NSDate date]; 

은 (a UIDatePicker 객체로 선언) timePickerNSDate 객체를 할당한다.

나중에 코드가 date 인스턴스 메소드를 호출하여 날짜 선택의 현재 날짜 값을 가져 오려고 시도 (다행히) 실패 unrecognized selectorNSDate 때문에 이러한 인스턴스 방법이 없습니다 (timePicker 지금를 가리키는 것입니다).


는 당신이 실제로 viewDidLoad에하고 싶은 것은 이것이다 :

self.timePicker.date = [NSDate date]; 

timePickerdate 특성 을 설정합니다.

관련 문제