2013-07-14 1 views
0

в моем приложении i добавил делегат текста и метод setBirthDate, чтобы принять дату и setGender, чтобы установить пол из представления выбора. после того, как пользователь выбирает дату рождения и пол, я пытаюсь отправьте их в БД. , когда я печатал значение в NSLog, он показывает значение, которое он выбирает, но когда я отправляю его в БД, он показывает NULL !!база данных получает NULL из представления сборщика и вида даты

это мой код

-(void)setBirthDate{ 
    actionsheet = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil  destructiveButtonTitle:nil otherButtonTitles:nil]; 
    [actionsheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; 

    CGRect pickframe= CGRectMake(0, 44, 0, 0); 
    UIDatePicker *picker = [[UIDatePicker alloc] initWithFrame:pickframe]; 
    [picker setDatePickerMode:UIDatePickerModeDate]; 

    [actionsheet addSubview:picker]; 

    UIToolbar *controlToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, actionsheet.bounds.size.width, 44)]; 
    [controlToolBar setBarStyle:UIBarStyleBlack]; 
    [controlToolBar sizeToFit]; 

    UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
    UIBarButtonItem *setButton = [[UIBarButtonItem alloc] initWithTitle:@"Set" style:UIBarButtonItemStyleDone target:self action:@selector(dissmisBirthDate)]; 
    UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelDateSet)]; 

    [controlToolBar setItems:[NSArray arrayWithObjects:space,setButton,cancel, nil] animated:NO]; 

    [actionsheet addSubview:controlToolBar]; 
    [actionsheet showInView:self.view]; 
    [actionsheet setBounds:CGRectMake(0, 0, 320, 485)]; 
    check5=TRUE; 
    [self ShowGeneral]; 
} 

-(void)dissmisBirthDate 
{ 
    NSArray *listView = [actionsheet subviews]; 

    for (UIView *subView in listView) { 
     if ([subView isKindOfClass:[UIDatePicker class]]) { 
      BirthDate = [(UIDatePicker *)subView date]; 
     } 
    } 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd"]; 
    [BirthDateTimeText setText:[dateFormatter stringFromDate:BirthDate]]; 
    [actionsheet dismissWithClickedButtonIndex:1 animated:YES]; 
} 

-(void)cancelDateSet 
{ 
    [actionsheet dismissWithClickedButtonIndex:1 animated:YES]; 
} 

-(void)GenderPickerView 
{ 
    genderArrayTime =[[NSMutableArray alloc]initWithObjects:@"ذكر",@"انثى",nil]; 
    actionsheet = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil]; 
    [actionsheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; 
    GenderPickerTime = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 44, 320, 485)]; 
    [actionsheet addSubview:GenderPickerTime]; 
    GenderPickerTime.delegate = self; 
    GenderPickerTime.showsSelectionIndicator = YES; 

    UIToolbar *controlToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, actionsheet.bounds.size.width, 44)]; 
    [controlToolBar setBarStyle:UIBarStyleBlack]; 
    [controlToolBar sizeToFit]; 

    UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

    UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(cancelPickerSet)]; 

    [controlToolBar setItems:[NSArray arrayWithObjects:space,cancel, nil] animated:NO]; 
    [actionsheet addSubview:controlToolBar]; 
    [actionsheet showInView:self.view]; 
    [actionsheet setBounds:CGRectMake(0, 0, 320, 485)]; 
    [GenderPickerTime selectRow:0 inComponent:0 animated:YES]; 
    genderTextTime.text = [NSString stringWithFormat:@"%@",[genderArrayTime objectAtIndex:0]]; 
    gender = [NSString stringWithFormat:@"%@",genderTextTime.text]; 
    NSLog(@"%@",gender); 
    check4=TRUE; 
    [self ShowPersonal]; 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    if (pickerView == GenderPickerTime) { 
     return 2; 
    } 
} 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { 
    return 1; 
} 

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    if (pickerView == GenderPickerTime) { 
     genderTextTime.text = [NSString stringWithFormat:@"%@",[genderArrayTime objectAtIndex:row]]; 
    } 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    if (pickerView == GenderPickerTime) { 
     return [genderArrayTime objectAtIndex:row]; 
    } 
} 

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    if ([textField isEqual:genderTextTime]) { 
    [self GenderPickerView]; 
    } 
} 

Вот код базы данных:

NSString *post =[[NSString alloc] initWithFormat:@"fname=%@&sname=%@&gender=%@&email=%@&mobile_number=%@&nID=%@&birth=%s&place=%@&schoole_stage=%s&interest=%s&message=%s",FirstNameTextTime.text, LastNameTextTime.text , gender , EmailTextTime.text , PhoneTextTime.text , IdentityNumberTextTime.text, BirthDateTimeText.text , LivingPlaceTextTime.text , "gr","exh","gsddgf"]; 
NSData *dataURL = [post dataUsingEncoding:NSUTF8StringEncoding]; 
NSURL *url = [NSURL URLWithString:@"http://....?"]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 

[request setHTTPMethod:@"POST"]; 
[request setHTTPBody:dataURL]; 

NSURLResponse *response; 
NSError *err; 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err]; 
NSLog(@"responseData: %@", responseData); 
NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",strResult); 

Это то, что я получил

имя_файла = (нуль) & SNAME = (нуль) & пол = (null) & [email protected] & mobile_number = 0569327234 & nID = (null) & рождения = 2013-10-14 & место = (нуль) & schoole_stage = гр & интерес = л.д. & сообщение = gsddgf

Кроме того я использую раскадровку и информацию я собирать от 3 контроллера зрения я попытался передать данные между представлением, но снова он проходит (NULL) ... ahhhh

+0

Можете ли вы разместить код, в котором вы сохраняете базу данных. – Yan

ответ

1

Я решил проблему не из сборщика, это происходит потому, что, когда я перехожу от представления к другому, мне нужно передать данные.

Смежные вопросы