使用UIAlertViewStyleSecureTextinput更改UIImage

时间:2014-10-03 14:43:22

标签: ios objective-c uiimageview uiimage uialertview

我正在尝试在我的应用程序中创建某种忠诚卡,基本上当输入正确的密码我希望它改变UIImageView的图像,但我无法让它工作,这里有一些代码:

@synthesize imageView;

- (IBAction)Stamp:(id)sender
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"SECRET CODE"    message:@"Please hand your device to the business representative who will stamp your card" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"STAMP", nil];
alert.alertViewStyle = UIAlertViewStyleSecureTextInput;
[alert show];

}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == alertView.firstOtherButtonIndex)
{
    UITextField *textfield = [alertView textFieldAtIndex:0];

    NSString *s1 = @"stamp";

    if (textfield.text == s1)
    {
        UIImage * Stampit = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"1Stamp@2x" ofType:@"png"]];
        [imageView setImage:Stampit];

    }

    }
}

1 个答案:

答案 0 :(得分:1)

您不应该使用引用相等(==)运算符来比较字符串。相反,请使用isEqualToString:的{​​{1}}方法,如下所示:

NSString

使用NSString *s1 = @"stamp"; if ([textfield.text isEqualToString:s1]) { ... 将确定==引用的NSString实例和textfield.text引用的NSString实例是否是相同的对象,意味着两个变量都指向内存中的相同地址。

这是你想要比较字符串的方式 - 相反,你想比较个别字符,确保它们是相同的情况,等等。这是s1会为你做什么。