我很难在结构中存储来自Parse的数据。我已经将我的UITableViewController设置为使用单独的Struct文件从Parse获取/管理数据。struct最初从Parse (使用println确认)获取数据,但当我尝试引用数据填充表时,结构将再次为空。下面是两个文件(有几种方法忽略了让它在这里更简洁)。以前,当我使用一个单独的类(而不是struct)来获取Parse数据时,这个方法是正确的,但是后来我决定使用一个struct来满足我的需求。有人能发现这个结构出了什么问题吗?非常感谢。
控制台输出
resultsArray.count =45个填充的objectList.count =1个索引对象。计数= 45 testPrint objectList.count =0
UITableViewController
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")
}
}连接到Parse的结构
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)")
}
}
}
}发布于 2015-07-27 12:52:36
在我看来,问题可能是因为您在这里将您的结构初始化为一个变量:var Citadel = Citadel(),但是您也在viewDidLoad中重新初始化它。我会尝试将您的var声明为var Citadel: Citadel?,然后像在viewDidLoad中一样初始化它,看看这是否对您有所帮助。
https://stackoverflow.com/questions/31653401
复制相似问题