[英]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.