依次显示两个相同的警报视图。如何区分来自警报 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】:由于使用的UITextField
s 相同,因此text
属性返回的NSString
指针将始终反映字段中的任何内容,无论您访问该属性时的内容如何。你需要copy
这个字符串:
NSString username1 = [[alertView textFieldAtIndex:0].text copy];
NSString password1 = [[alertView textFieldAtIndex:1].text copy];
如果您不使用 ARC,那么您当然也必须在完成后释放这些:
[username1 release];
[password1 release];
【讨论】:
感谢您的帮助。解决了我的问题。以上是关于依次显示两个相同的警报视图。如何区分来自警报 1 和警报 2 的文本?的主要内容,如果未能解决你的问题,请参考以下文章