嗨,大家好,我在尝试Swift和Parse,也许您可以在这里给我提示,我不知道为什么我的NSMutableArray typeAccessory总是空的,没有对象,我试图从Parse添加对象。
[编辑]
我试图使用XLForm做一个选择器动作表,该动作表需要一个元素数组,我想将对象从解析作为数组传递给“ row.selectorOptions”。
// XLForm
row = XLFormRowDescriptor(tag :Tags.ActionSheet.rawValue, rowType:XLFormRowDescriptorTypeSelectorActionSheet, title:"Sheet")
row.selectorOptions = ["Option 1", "Option 2", "Option 3", "Option 4", "Option 5"]
row.value = "Option 3"
section.addFormRow(row)
任何的想法?
谢谢
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .Plain, target: self, action: "submit:")
self.loadAccessoryType() //loading function
}
func loadAccessoryType()-> NSMutableArray{
var typeAccessory:NSMutableArray? = NSMutableArray()
var query = PFQuery(className:"accessory_type")
query.selectKeys(["type"])
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
if let objects = objects as? [PFObject] {
for object in objects{
typeAccessory?.addObject(object["type"]!)
}
}
}else{
println("No results")
}
}
return typeAccessory!
}
findObjectsInBackgroundWithBlock
将异步运行,因此该方法将跳过该代码块并直接进入return typeAccessory
一个空数组。考虑使用findObjects
method,或者如果您坚持异步执行,请尝试使用回调:
func loadAccessoryType(){
var typeAccessory : NSMutableArray = NSMutableArray()
var query = PFQuery(className:"accessory_type")
query.selectKeys(["type"])
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
if let objects = objects as? [PFObject] {
for object in objects{
typeAccessory.addObject(object["type"]!)
}
self.onAddingObjectsCompleted(typeAccessory)
}
}else{
self.onAddingObjectsFailed()
}
}
func onAddingObjectsCompleted(data : NSMutableArray) {
//stuff to do when its done
}
func onAddingObjectsFailed() {
//stuff to do when it failed
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句