【发布时间】:2015-07-20 20:05:14
【问题描述】:
我的应用程序中有一个以前从未见过的奇怪错误。基本上我有两个视图 - 用户配置文件和编辑配置文件。在 User Profile 视图中,我从 Parse 中检索到两件事:
- 表示用户头像顺序的字符串数组(例如 ["pic1", "pic3", "pic2"])
- 照片文件本身(最多 6 个)
在编辑个人资料视图中,用户可以上传新照片以及重新排列订单数组。该视图还有一个用于关闭视图并放弃任何更改的按钮,如下所示:
@IBAction func cancelTapped(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
问题是,如果我对照片顺序数组进行任何更改,例如重新排列或附加到它,然后点击“取消”按钮,视图就会按原样关闭。但是,当我返回编辑配置文件视图时,或者即使我关闭用户配置文件然后重新打开它,两个视图都显示不应该保存的新订单数组,因为我点击了“取消”按钮。我可以解决的唯一方法是关闭应用程序并重新打开。
数组是否被本地保存到 iPhone?如果您需要更多信息或查看更多代码,请告诉我!
编辑:忘了提一下,当我查看 Parse 时,值并没有存储在那里,但是 Xcode 日志说重新加载视图时数组发生了变化。
编辑 2:这里是 self.photoOrder 的实例化:
var photoOrder:NSMutableArray = []
来自 Constants.swift 的 currentuser 实例化
var currentuser = PFUser.currentUser()
【问题讨论】:
-
您如何加载/保存现有的照片订单数组?您是将值从主视图传递到编辑配置文件视图还是视图本身加载值?
-
编辑配置文件视图将它们本身作为 viewDidLoad 的一部分加载。看起来像这样: self.photoOrder = currentuser.objectForKey("photoOrder") as! NSMutableArray
-
您能从编辑配置文件视图控制器中添加更多代码吗?
self.photoOrder的声明和currentuser对象的实例化对于解决您的问题很有趣。 -
好的,很好。我将它添加到帖子的底部。但是,当前用户声明发生在 Edit Profile 视图之外,并且在应用程序的其他部分工作正常。我还应该包括吗?
-
当您包含访问
currentuser对象的代码时,我们可以解决您的问题。如果您在声明编辑配置文件视图时传递对全局currentuser对象的引用,那应该可以解决我的问题。
标签: ios arrays swift parse-platform