TextField返回nil并输入有效值。 Parse.com问题

时间:2015-05-12 08:18:33

标签: ios objective-c parse-platform

我有一个将值传递给parse对象的文本字段。它工作得很好,然后我在我的TableViewController中添加了一个Tab Bar Controller,它是PFQueryTableViewController的子类。现在,self.message.text;message.text(已合成)都没有传递正确的值,而是传递了nil,我的应用程序崩溃了。

以下是我尝试运行的代码示例:

 -(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    NSString *echo = message.text;

    PFUser *currentUser = [PFUser currentUser];
    if (currentUser) {
        PFObject *echoObject = [PFObject objectWithClassName:@"Echo"];
        echoObject[@"body"] = echo;
        echoObject[@"title"] = @"Echo";
        echoObject[@"user"] = currentUser;
        [echoObject saveInBackground];

        NSLog(echo);
        NSLog(@"TEST");
    } else {
        // show the signup or login screen
    } 
    [self loadObjects];
    return YES;
}

添加TabBarController是我唯一能想到的会以破坏代码的方式影响视图控制器的东西。如果我想到可能破坏代码的任何其他内容,我会更新问题。

我已经验证导致异常的对象是echoObject[@"body"] = echo;,因为值为nil。同样在NSLog中,消息不会打印到控制台。

更新

我设法通过直接从方法中提取TextField值来使代码工作,如下所示:

 -(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    NSString *echo = textField.text;


    PFUser *currentUser = [PFUser currentUser];
    if (currentUser) {
        PFObject *echoObject = [PFObject objectWithClassName:@"Echo"];
        echoObject[@"body"] = echo;
        echoObject[@"title"] = @"Echo";
        echoObject[@"user"] = currentUser;
        [echoObject saveInBackground];

        NSLog(echo);
        NSLog(@"TEST");
    } else {
        // show the signup or login screen
    }


    [self loadObjects];

    return YES;
}

这就是代码应该首先出现的方式,但我想澄清为什么自指针和合成指针不起作用。

0 个答案:

没有答案