【发布时间】:2014-11-03 16:30:45
【问题描述】:
我有一个简单的应用程序,上面有几个 UITextField 对象。在 Editing Did End 事件中,我调用了第一响应者 save(),以便使用核心数据保存数据。
自从我最初发布该应用程序以来,这一直没有问题。我目前正在向我的应用程序添加一项新功能,并注意到我无法解决的行为差异。
我有一个 UIButton,它链接到 Touch Up Inside 事件,该事件触发发送电子邮件的方法,该电子邮件编译所有已持久化的数据。
但是这些事件的顺序在我当前的二进制文件和新的二进制文件之间并不一致。
对于我在 App Store 中的现有应用程序,如果我正在编辑 UITextField 并单击电子邮件按钮,事件将按照 Editing Did End -> save() THEN Touch Up Inside -> sendEmail() 的顺序触发。
在我的 beta 二进制文件运行时,执行相同的步骤会以相反的顺序触发事件:Touch Up Inside -> sendEmail() THEN Editing Did End -> save()
这会导致问题,因为我的最新值尚未保留,并且它们未包含在电子邮件中。
这些事件是否已重新排序?我需要在我的应用程序中更改某些内容以允许这些内容吗?我可以通过使用开始编辑来解决它,设置一个标志来说明它是脏的,然后在生成电子邮件之前调用保存,但这似乎更像是一个黑客而不是一个解决方案。
所以我想我会问。
谢谢!
【问题讨论】:
-
为什么不直接在电话
save()和sendEmail()进行修饰? -
我试过了 - 但他们似乎仍然无法正常开火。我会再试一次。
标签: ios objective-c iphone xcode