0

我正在阅读一些关于编辑数据存储在服务器中的表格单元格的教程。一切正常 - 我可以编辑表格单元格并单击“保存”按钮,但如果我返回表格概览,它不会更新。我有 3 个表字段:

  • 标题字段
  • 作者字段
  • 文本字段

我不知道问题是否来自这段代码,但我想是的。教程示例只有 2 个字段,我需要 3 个字段,但我不知道如何为 3 个文本字段实现这段代码:

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [textField resignFirstResponder];
    if (textField == titleField) {
        [authorField becomeFirstResponder];
    }
    if (titleField == authorField) {
        [self save];
    }
    return YES;
} 

我已经试过if (titleField == authorField == atextField)了,但是错误信息说:Comparison between pointer and integer ('int' and 'UITextField')。我也试过if (titleField == authorField && titleField == atextField && authorField == atextField){了,我没有收到错误,但这并没有改变数据不会更新更改的事实。

上面的代码应该是什么样子的?

4

1 回答 1

2

那些 IF 没有意义,你不能这样做:

if (titleField == authorField == atextField)

因为您将第一个 == 的结果与文本字段进行比较,所以指针和整数之间的比较错误。

在第二个中,

if (titleField == authorField && titleField == atextField && authorField == atextField)

这永远不会被调用,因为 titleField 不能同时是 3 个东西。

我的第一个想法是做这样的事情:

    if (textField == titleField) {
            [authorField becomeFirstResponder];
        }
    else if ((textField == authorField){
            [atextField becomeFisrtResponder];
     else if (titleField == atextField) {
            [self save];
        }

我认为这就是你想要做的。

于 2012-06-26T12:29:27.657 回答