gpt4 book ai didi

ios - 解析数组似乎存储在我的应用程序 session 本地

转载 作者:行者123 更新时间:2023-11-30 14:13:09 24 4
gpt4 key购买 nike

我的应用程序中有一个我以前从未见过的奇怪错误。基本上我有两个 View - 用户个人资料和编辑个人资料。在“用户配置文件” View 中,我从 Parse 中检索两件事:

  1. 表示用户个人资料照片顺序的字符串数组(例如 ["pic1", "pic3", "pic2"])
  2. 照片文件本身(最多 6 个)

在编辑个人资料 View 中,用户可以上传新照片以及重新排列顺序数组。该 View 还有一个按钮可以关闭 View 并放弃任何更改,如下所示:

@IBAction func cancelTapped(sender: AnyObject) {

self.dismissViewControllerAnimated(true, completion: nil)

}

问题是,如果我对照片顺序数组进行任何更改(例如重新排列或附加到它),然后单击“取消”按钮, View 将按其应有的方式关闭。但是,当我返回“编辑配置文件” View 时,或者即使我关闭“用户配置文件”然后重新打开该 View ,两个 View 都会显示不应保存的新订单数组,因为我点击了“取消”按钮。我可以解决的唯一方法是关闭应用程序并重新打开。

数组是否保存在 iPhone 本地?如果您需要更多信息或查看更多代码,请告诉我!

编辑:忘了提及,当我查看 Parse 时,值并未存储在那里,但 Xcode 日志显示数组在重新加载 View 时发生了更改。

编辑2:这是 self.photoOrder 的实例化:

var photoOrder:NSMutableArray = []

来自 Constants.swift 的当前用户实例化

var currentuser = PFUser.currentUser()

最佳答案

我不知道您的重新排序方法是什么样的,也不知道您在重新排序完成时是否调用 PFUser 对象上的保存方法。您似乎以某种方式覆盖了编辑个人资料 View 中的 photoOrder 属性。

解决方案1

一个简单的解决方案是在加载 View 时备份当前值:

var photoOrderBackup:NSMutableArray = []

// viewDidLoad
self.photoOrder = currentuser.objectForKey("photoOrder") as! NSMutableArray
self.photoOrderBackup = currentuser.objectForKey("photoOrder") as! NSMutableArray

然后,当用户取消操作时,您就有机会应用备份值。

@IBAction func cancelTapped(sender: AnyObject) {
currentUser.photoOrder = self.photoOrderBackup; // Apply backup value
// Perhaps add the save method here after you've overwritten the photoOrder value
self.dismissViewControllerAnimated(true, completion: nil)
}

解决方案2

如果更改尚未保存到当前用户对象,刷新该对象可能有助于取消挂起的更改。

@IBAction func cancelTapped(sender: AnyObject) {
currentUser.refresh() // Refresh object with local data
self.dismissViewControllerAnimated(true, completion: nil)
}

关于ios - 解析数组似乎存储在我的应用程序 session 本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31525386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com