2015-01-26 4 views
0

У меня есть приложение, где пользователи публикуют то, что и другие пользователи могут комментировать его, тогда, я использую метод «SendYourOpinion» для хранения, что«NSInvalidArgumentException», причина: «Невозможно использовать nil для ключей или значений в PFObject. Используйте NSNull для значений. ' (Предыдущие ответы не исправить)

- (IBAction)SendYourOpinion:(id)sender { 

     PFObject *opinion = [PFObject objectWithClassName:@"Opinions"]; 
     opinion[@"content"] = self.txtFieldOpinion.text; 
     opinion[@"userId"] = [PFUser currentUser]; 
     [opinion saveInBackground]; 

    } 

И ошибка в появляется заголовок, затем я прочитал предыдущие ответы, и я не исправил свою проблему.

+0

Является ли 'self.txtFieldOpinion.text' nil? – sbooth

+0

Распечатайте значения 'self.txtFieldOpinion.text' и' [PFUser currentUser] '. Является ли любой из них «ноль»? –

ответ

1

self.txtFieldOpinion.text или [PFUser currentUser] is nil.

Вам необходимо проверить на nil и назначить вместо него объект. Вы не можете назначить nil в качестве значения (как указано в полученном вами сообщении об ошибке).

PFObject *opinion = [PFObject objectWithClassName:@"Opinions"]; 
    opinion[@"content"] = self.txtFieldOpinion.text ? self.txtFieldOpinion.text : [NSNull null]; 
    opinion[@"userId"] = [PFUser currentUser] ? [PFUser currentUser] : [NSNull null]; 
    [opinion saveInBackground]; 
+0

[PFUser currentUser] - это нуль, я вижу, что в Dashboard (undefined), но чего мне не хватает? Это указатель на класс «_User». В чем проблема на этом этапе? – Lkm

+0

Я понятия не имею. Вы разместили только небольшой сегмент исходного кода. Ответ на вопрос, который вы изначально задали, теперь найден. Если у вас есть дополнительные вопросы, вы должны опубликовать их в новом вопросе. –

0

Указывает на отсутствие присвоенного значения (ноль), вполне возможно, когда вы пытаетесь присвоить значения жёстко прописанные, или тип, который Анализировать не может решить. Например, если у вас есть атрибут объекта, тип которого BOOLEAN и вы

object[@"status"] = FALSE, или 0 (вы получите сообщение об ошибке)

Правильно:

NSNumber* status = [NSNumber numberWithBool:NO]; //passing FALSE as status 
object[@"status"] = status; 

Анализировать бы решить ее как значение, назначенное через тип и разрешающее его