依次显示两个相同的警报视图。如何区分来自警报 1 和警报 2 的文本?

Posted

技术标签:

【中文标题】依次显示两个相同的警报视图。如何区分来自警报 1 和警报 2 的文本?【英文标题】:Two identical alert views shown in sequence. How can I differentiate between texts from alert 1 and alert 2? 【发布时间】:2014-09-02 22:28:24 【问题描述】:

在我的应用程序中,我显示第一个警报视图,要求输入密码和用户 ID,然后是:

 NSString username1 = [alertView textFieldAtIndex:0].text;
 NSString password1 = [alertView textFieldAtIndex:1].text;

接下来,我第二次显示确切的警报视图,但这次是空的并带有不同的消息,只是为了在创建凭据之前确认密码和用户 ID。接下来是:

 NSString username2 = [alertView textFieldAtIndex:0].text;
 NSString password2 = [alertView textFieldAtIndex:1].text;

但看起来 username2 和 password2 从 username1 和 password1 中获取值。实际上,例如,如果我在 username2 中键入不同的值,它会反映在 username1 中!

我在某个地方读到了我应该使用称为“标签”的东西。那么我如何将这个“标签”与credentials1而不是credentials2联系起来,以便我从alert1和alert2中获得独立的值?为了比较这些值并确保用户输入正确的凭据。

或者,还有其他一些简单(r)的方法吗?

感谢您的帮助

【问题讨论】:

【参考方案1】:

由于使用的UITextFields 相同,因此text 属性返回的NSString 指针将始终反映字段中的任何内容,无论您访问该属性时的内容如何。你需要copy这个字符串:

NSString username1 = [[alertView textFieldAtIndex:0].text copy];
NSString password1 = [[alertView textFieldAtIndex:1].text copy];

如果您不使用 ARC,那么您当然也必须在完成后释放这些:

[username1 release];
[password1 release];

【讨论】:

感谢您的帮助。解决了我的问题。

以上是关于依次显示两个相同的警报视图。如何区分来自警报 1 和警报 2 的文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SwiftUI 连续呈现两个警报视图

如何获取在 iphone 的警报应用程序中使用的数据表视图?

如何向推送通知警报视图添加操作?

单击列表视图时如何显示警报对话框

单击列表视图时如何显示警报对话框

如何显示来自不同班级的警报