gpt4 book ai didi

ios - 无法更改匿名 block 中的实例变量 (Swift/Parse.com)

转载 作者:搜寻专家 更新时间:2023-11-01 07:27:45 25 4
gpt4 key购买 nike

Parse Data 是一个 PFObject 类,其中包含我正在查询的“Companies”数据。获取数据并将其分配为 ParseData 对象工作正常,但问题是将其放入我的 listivar。从输出中可以看出,匿名 block 中的所有 ivar 都没有发生变化。是否有解决方法或解决方案?

import Foundation
class AllCompanies: NSObject {
var list:[ParseData] = []
var testList:[String] = []
var testString:String = "butter"

override init()
{
super.init()
getCompanies()
}

func getCompanies()
{
let query = ParseData.query()!
query.findObjectsInBackgroundWithBlock { objects, error in
if error == nil
{
for company in objects!
{
let newCompany:ParseData = ParseData()
newCompany.name = company.objectForKey("Name") as! String
newCompany.logo = company.objectForKey("Logo") as! PFFile

self.list.append(newCompany)
self.testList.append("here")
self.testString = "no matter"
}
}
else
{
print("Error: \(error) \(error?.userInfo)")
}
}
}
}

方法调用:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Parse.setApplicationId("m0zIvk7nfP6nEUrGYzyecbhRdqTrhbUoBI00fvZ4", clientKey: "lmqPfyrkeq4p8v6cukV7aFCVdi4evb8MFyjgvnEG")
PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)
let allCompanies = AllCompanies()
print("\(allCompanies.list)")
print("\(allCompanies.testList)")
print("\(allCompanies.testString)")
return true
}

最佳答案

getCompanies 方法是异步的?您确定是否在 findObjectsInBackgroundWithBlock 方法之前运行您的 print 命令。您不能将异步代码编写为同步代码。试着在 self.testString = "no matter" 下面写下你的打印代码。祝你好运!

关于ios - 无法更改匿名 block 中的实例变量 (Swift/Parse.com),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34846739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com