0

1 つのクラスのメソッド:

- (IBAction)createGroup:(id)sender {
    PFObject *message = [PFObject objectWithClassName:@"Messages"];
    [message setObject:self.recipients forKey:@"recipientIds"];
    [message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (error) {
            NSLog(@"Error %@ %@", error, [error userInfo]);
        }
        else [self performSegueWithIdentifier:@"showDate" sender:self];
    }];
}

次に、別の方法で:

    else {
            PFQuery *message = [PFQuery queryWithClassName:@"Message"];
                [message getObjectInBackgroundWithId:@"message" block:^(PFObject *message,         NSError *error) {
                [message setObject:file forKey:@"file"];
                [message setObject:fileType forKey:@"fileType"];
                [message setObject:[[PFUser currentUser] objectId] forKey:@"senderId"];
                [message setObject:[[PFUser currentUser] username] forKey:@"senderName"];
                [message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {

アプリを実行すると、エラーや警告は表示されませんが、クエリにアクセスするとエラーがスローされて終了します。1週間前にプログラミングチェリーをポップしたばかりなので、見落としているのは単純なことだと確信しています。どんな助けでも大歓迎です。乾杯!

4

1 に答える 1

0

getObjectInBackgroundWithId:block:、パラメーターの解析オブジェクト ID を想定していobjectIdます。

単純にオブジェクトを作成し、それを子ビュー コントローラーに渡そうとする場合は、実際のPFObject.

//In your header
@property (nonatomic, strong) PFObject *message;

 //Implementation
 (IBAction)createGroup:(id)sender {
   PFObject *message = [PFObject objectWithClassName:@"Messages"];
   [message setObject:self.recipients forKey:@"recipientIds"];
   [message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
       if (error) {
           NSLog(@"Error %@ %@", error, [error userInfo]);
       }
       else {
         self.message = message;
         [self performSegueWithIdentifier:@"showDate" sender:self];
       }
   }];
}

ビュー コントローラーに実装prepareForSeque:sender:してから、PFObject を子ビュー コントローラーに渡す必要があります。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  if ([segue.identifier isEqualToString:@"showDate"]) {
    YourChildViewController *destViewController = segue.destinationViewController;
    destViewController.message = self.message;
  }
}

次に、子View Controllerで次のようにします。

//In the header, create a property to hold the message object
@property (nonatomic, strong) PFObject *message;

//In the body, you can use self.message
  [self.message setObject:file forKey:@"file"];
  [self.message setObject:fileType forKey:@"fileType"];
  [self.message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
  ...
于 2013-08-28T00:38:52.467 に答える