“方法调用的参数太多,预期为1,有2个”,但实际上只有1个

时间:2013-01-15 21:08:24

标签: ios objective-c cocoa-touch

此代码可以正常工作:

NSString *titleForMail =[NSString stringWithFormat:@"text %@",_infoTFProduct.text];
        [mailCont setSubject:titleForMail];

虽然此代码给出了上述错误。

[mailCont setSubject:@"yo! %@", _infoTFProduct.text];

我很想知道原因。

Screenshot

2 个答案:

答案 0 :(得分:5)

因为,[mailCont setSubject:@"yo! %@", _infoTFProduct.text];显然有2个参数?实际上,逗号表示第一个参数的结束和第二个参数的开始。

该语法对于插值字符串不是通用的。 stringWithFormat:NSLog我认为是唯一可以处理此参数格式的案例。

因此接受字符串的方法很少也会接受带插值参数的字符串。如果要将值插入字符串并在任何可以使用字符串的地方使用它,则必须先使用[NSString stringWithFormat:]

答案 1 :(得分:0)

尝试将其放置在您需要的位置。

[mailCont setSubject:[NSString stringWithFormat:@"yo! %@", _infoTFProduct.text]];