2015-06-11 34 views
0

我的應用程序首先允許用戶使用其Facebook登錄憑據登錄,而用戶是在我的Parse User類中創建的。這已成功地爲測試我的應用程序的多個用戶工作。Xcode:無法將行添加到帶有PFObject的類

其中一個用戶可以通過PFObject將項目添加到名爲「Items」的類中,但其他用戶無法添加任何項目。這是我用來上傳對象的代碼:

- (void)uploadItem { 
NSString *title = self.itemTitle.text; 
NSNumberFormatter * f = [[NSNumberFormatter alloc] init]; 
[f setNumberStyle:NSNumberFormatterDecimalStyle]; 
NSNumber *price = [f numberFromString:self.itemPrice.text]; 
NSString *description = self.itemDescription.text; 
NSString *category = self.category; 
NSData *data; 
NSNumber *mobileNo = [f numberFromString:self.mobileNo.text]; 
NSString *name; 
NSString *userName = [[PFUser currentUser]username]; 

if ([FBSDKAccessToken currentAccessToken]) { 
    [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil] 
    startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
     if (!error) { 
      NSLog(@"fetched user:%@", result); 

      _fullName = [result objectForKey:@"name"]; 
      _firstName = [result objectForKey:@"first_name"]; 
      _lastName = [result objectForKey:@"last_name"]; 
      _gender = [result objectForKey:@"gender"]; 
      _userID = [result objectForKey:@"id"]; 
      _locale = [result objectForKey:@"locale"]; 
      _email = [result objectForKey:@"email"]; 

     } 
    }]; 
} 

    UIImage *newImage = [self resizeImage:self.image toWidth:320.0f andHeight:480.0f]; 
    data = UIImagePNGRepresentation(newImage); 
    name = @"image.png"; 


PFFile *file = [PFFile fileWithName:name data:data]; 
[file saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { 
    if (error) { 
     UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"An error occurred!" 
                  message:@"Please try sending your message again." 
                  delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alertView show]; 
    } else { 
     PFObject *item = [PFObject objectWithClassName:@"Items"]; 
     [item setObject:file forKey:@"file"]; 
     [item setObject:title forKey:@"itemTitle"]; 
     [item setObject:mobileNo forKey:@"MobileNo"]; 
     [item setObject:price forKey:@"itemPrice"]; 
     [item setObject:description forKey:@"itemDescription"]; 
     [item setObject:category forKey:@"itemCategory"]; 
     [item setObject:[[PFUser currentUser] objectId] forKey:@"uploaderId"]; 
     [item setObject:userName forKey:@"uploaderIdFB"]; 
     [item setObject:_firstName forKey:@"FirstName"]; 
     [item setObject:_lastName forKey:@"LastName"]; 
     [item setObject:_fullName forKey:@"FullName"]; 
     [item setObject:_gender forKey:@"Gender"]; 
     [item setObject:_userID forKey:@"UserID"]; 
     [item setObject:_locale forKey:@"Locale"]; 
     [item setObject:_email forKey:@"Email"]; 

     [item saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { 
      if (error) { 
       UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"An error occurred!" 
                    message:@"Please try sending your message again." 
                    delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
       [alertView show]; 
      } else { 
       // Success. 
       self.image = nil; 
       PFQuery *query = [PFQuery queryWithClassName:@"Categories"]; 
       [query whereKey:@"category" equalTo:category]; 
       [query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) { 
        if (error) { 
         NSLog(@"Error: %@ %@", error, [error userInfo]); 
        } else { 
         NSNumber *items = [object objectForKey:@"items"]; 
         items = [NSNumber numberWithInt:([items intValue] + 1)]; 
         [object setObject:items forKey:@"items"]; 
         [object saveInBackground]; 
        } 
       }]; 
      } 
     }]; 
    } 
}]; 
} 
+0

這不是關於Xcode的問題。考慮添加[tag:ios]和[tag:objective-c]標籤。 – JAL

回答

0

您要保存的項目之一必須爲null/nil。每個斷點保存並檢查對象的值。如果其中一個是n,它將意味着該對象不會保存。