[英]iOS/Swift/Parse - Struct not storing data
我在Struct中存储来自Parse的数据时遇到问题。 我已经将UITableViewController设置为使用单独的Struct文件从Parse获取/管理数据。 该结构最初从Parse获取数据(使用println确认),但是当我尝试引用该数据以填充表时,该结构再次为空。 以下是2个文件(此处省略了一些尝试使它们更简洁的方法)。 当我使用一个单独的类(而不是一个结构)来获取Parse数据时,我以前可以正常工作,但是从那以后,我决定一个结构会更好地满足我的需求。 谁能发现该结构出了什么问题? 非常感谢。
resultsArray.count = 45个已填充的objectList.count = 1个索引处的对象0.count = 45 testPrint objectList.count = 0
import UIKit
import Parse
class ExerciseMuscleTypeTableViewController: UITableViewController {
// MARK: Variables
var citadel: Citadel = Citadel()
// MARK: IBActions
@IBAction func refreshButton(sender: UIBarButtonItem) {
citadel.testPrint()
}
// MARK: Override
override func viewDidLoad() {
super.viewDidLoad()
citadel = Citadel(parseClassName: "ExerciseList", orderedBy: "MusclePrimary")
}
}
import Foundation
import Parse
struct Citadel {
// MARK: Properties
var objectList: [[PFObject]] = [[PFObject]]()
var sectionHeaders: [String] = [String]()
var parseClassName: String?
var userID: String?
// MARK: Methods
func testPrint() {
println("testPrint, objectList.count = \(self.objectList.count)")
}
// MARK: Init
init(parseClassName: String, orderedBy: String) {
// Set structure's properties
self.parseClassName = parseClassName
self.objectList = [[PFObject]]()
self.sectionHeaders.removeAll(keepCapacity: true)
if let id = PFUser.currentUser()!.objectId {
self.userID = id
}
// Format query to get data from Parse
var query = PFQuery(className: parseClassName)
query.orderByAscending(orderedBy)
query.findObjectsInBackgroundWithBlock { (queryResult: [AnyObject]?, error: NSError?) -> Void in
if let resultsArray = queryResult as? [PFObject] {
println("resultsArray.count = \(resultsArray.count)")
self.objectList = [resultsArray]
println("filled objectList.count = \(self.objectList.count)")
println("objects at index0.count = \(self.objectList[0].count)")
}
}
}
}
在我看来,问题可能是因为您要在此处将结构初始化为变量: var Citadel = Citadel()
,但随后还要在viewDidLoad
中将其重新初始化。 我会尝试将您的var
声明为var Citadel: Citadel?
然后像在viewDidLoad
一样初始化它,看看是否有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.