我无法向具有多个参数的Objective C方法发送消息。该方法有两个参数,NSString对象和布尔变量。我可以在编辑方法代码时成功进行调用,因此它只有其中一个参数,但不能同时具有这两个参数。我没有得到任何编译错误。当我运行程序时,程序停止,我在方法调用时得到一个断点,但XCode调试器没有提供有关它停止的原因的任何其他信息。然后我可以选择继续运行程序,它会按预期执行。我目前正在同一个类的另一个方法中调用该方法。我试过直接从main调用该方法,但有同样的问题。我在saySomething方法中尝试了很多更改,包括只注释掉方法的全部内容,但我的程序仍然在方法调用中停止。我的界面和实现文件如下。感谢您提供的任何帮助!
编辑:我还根据要求添加了main中的代码。
@interface XYZPerson : NSObject
- (void) sayHello;
- (void) saySomething:(NSString *)whatToSay loudly:(Boolean)toYell;
@end
@implementation XYZPerson
- (void)sayHello
{
NSString *greeting = @"Hello, World!";
[self saySomething:greeting loudly:YES];
}
- (void)saySomething:(NSString *)whatToSay loudly:(Boolean)toYell
{
NSString *whatToSayEdited = whatToSay;
if (toYell == YES) {
whatToSayEdited = [whatToSay uppercaseString];
}
NSLog(@"%@", whatToSayEdited);
}
@end
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
XYZPerson *somePerson = [[XYZPerson alloc] init];
[somePerson sayHello];
}
return 0;
}
答案 0 :(得分:0)
听起来你在
处设置了断点if (toYell == YES) {
whatToSayEdited = [whatToSay uppercaseString];
}
代码块,这可以解释为什么没有第二个参数它可以顺利运行,但在设置两个参数时停止。
如果在你告诉它继续之后它继续正常运行它不是一个错误,但实际上只是一个断点。查看编辑器左侧的行号。断点显示为蓝色块状箭头。