0

目標は、ユーザーに期日を設定させ、この期日をオブジェクトに保存させることです。

オブジェクトのsaveListItemメソッドは次のとおりです。

+ (void)saveListItem:(PFUser *)theUser withName:(NSString *)theListItem withDate:(NSDate *)theDueDate
{
    PFObject *listObject = [[PFObject alloc] initWithClassName:@"ListItem"];
    [listObject setObject:[PFUser currentUser] forKey:@"author"];
    [listObject setObject:theListItem forKey:@"listName"];
    [listObject setObject:theDueDate forKey:@"dueDate"];
    [listObject save];
    NSLog(@"%@", listObject);

}

これが呼ばれる場所です:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIBarButtonItem *saveDate = [[UIBarButtonItem alloc]
                                 initWithTitle:@"Save Date"
                                 style:UIBarButtonItemStyleDone
                                 target:self
                                 action:@selector(saveList:)];
    self.navigationItem.rightBarButtonItem = saveDate;
    pick = [[UIDatePicker alloc] init];
    [pick setFrame:CGRectMake(0,200,320,120)];
    [pick addTarget:self action:@selector(updateDateLabel:) forControlEvents:UIControlEventValueChanged];
}

-(IBAction)saveList:(id)sender {

    [ListItemObject saveListItem:[PFUser currentUser] withName:listFieldText withDate:pick.date];
}

-(IBAction)updateDateLabel:(id)sender {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterLongStyle];
    [formatter setTimeStyle:NSDateFormatterMediumStyle];
    dateLabel.text = [formatter stringFromDate:pick.date];
}

日付ピッカーの参照先を確認したところ、ピッキングするように設定されています。

保存されるオブジェクトは現在の日付であり、ピッカーで選択された日付ではありません。

4

1 に答える 1

0

あなたのコードは何も悪いことをしていません。

ただし、これが修正の最悪のケースです。

-(void)updateDateLabel:(id)sender {

   formatter = [[NSDateFormatter alloc] init];
   [formatter setDateStyle:NSDateFormatterLongStyle];
   [formatter setTimeStyle:NSDateFormatterMediumStyle];
   dateLabel.text = [formatter stringFromDate:((UIDatePicker *)sender).date];
}       

-(IBAction)saveList:(id)sender {

    NSDate *selectedDate = [formatter dateFromString:dateLabel.text];
    [ListItemObject saveListItem:[PFUser currentUser] withName:listFieldText withDate:selectedDate];
}
于 2013-03-17T22:21:20.527 に答える