xcode ios将动作连接到动作场景中的按钮

xcode ios将动作连接到动作场景中的按钮,ios,uibutton,uiactionsheet,Ios,Uibutton,Uiactionsheet,我是iOS开发的初学者。我正在尝试编写一个简单的应用程序,根据特定字段的变量,它有两个可能的结果与一个按钮关联 当用户按下我的应用程序上的“行走”按钮,状态变量为“跳跃”时,会出现一个动作场景 如果状态为“跳跃”,用户按“行走”,则会根据以下片段弹出以下场景: - (IBAction)walk:(id)sender { if ([_personState.text isEqual: @"Jumping"]) { UIActionSheet *actionsheet = [[UIAct

我是iOS开发的初学者。我正在尝试编写一个简单的应用程序,根据特定字段的变量,它有两个可能的结果与一个按钮关联

当用户按下我的应用程序上的“行走”按钮,状态变量为“跳跃”时,会出现一个动作场景

如果状态为“跳跃”,用户按“行走”,则会根据以下片段弹出以下场景:

- (IBAction)walk:(id)sender {
if ([_personState.text  isEqual:  @"Jumping"])
{
    UIActionSheet *actionsheet = [[UIActionSheet alloc]
                                  initWithTitle:@"Invalid Action - Force?"
                                  delegate:self
                                  cancelButtonTitle:@"Cancel"
                                  destructiveButtonTitle:nil
                                  otherButtonTitles:@"Force", nil];
    [actionsheet showInView:self.view];
}
else {_personState.text =  @“Walking";}
}

当我单击Force时,personState不会更新为Walking

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if ([_personState.text isEqual: @"Jumping"] && buttonIndex == 0)
{
    _personState.text =  @"Walking";
}
我的if语句是否不正确?还是我又犯了一个错误

您使用的是isEqual:但我认为您应该使用IsequalString:来代替


isEqual比较指针,而isEqualToString比较字符串的值。

学会调试,它会让您的生活更轻松

在操作表中放置断点:单击按钮索引:

在Xcode类型底部的调试区域中

po _personState.text
然后键入

p buttonIndex 
po=打印对象

p=打印原语


您甚至不需要输入,只需将鼠标悬停在变量上,它就会显示值

恐怕不是这样-状态保持不变。