【发布时间】:2017-10-29 05:29:02
【问题描述】:
我有一个返回多个对象的云代码函数,其中一些是布尔值。我想根据返回对象的布尔值在我的 Swift 代码中做一些事情,如下所示。但是,我在实施过程中不断遇到多个错误。
云代码
Parse.Cloud.define("checkCharge", function(request, response){
stripe.charges.retrieve(request.params.charge, function(err, charge) {
if(err){
console.log(err);
response.error(err);
}else{
console.log("Successfully checked the charge");
response.success(charge);
}
});
});
Swift 代码
PFCloud.callFunctionInBackground("checkCharge", withParameters: ["charge": orderCharge]) { (success: AnyObject?, error: NSError?) -> Void in
// if let responseJSON: [String: Bool] = success as? [String: Bool] {
if error == nil{
// let responseString = response as? String
// let chargeCaptured: Bool = success["captured"]
let objects = success as! NSArray
for object in objects {
let chargeCaptured = object["captured"] as! Bool
let chargeRefunded: Bool = success["refunded"]
let chargePaid: Bool = success["paid"]
if chargeCaptured == true || chargeRefunded == true || chargePaid == true{
print("charge already processed charge")
object.deleteInBackground()
}else{
self.storyboard
}
每当我尝试设置常量时,我都会收到诸如下标使用不明确和类型 AnyObject 没有下标成员之类的错误。我也收到错误无法将 Bool 类型转换为 Bool。
【问题讨论】:
-
哪行代码会抛出该错误。这意味着 object 是 AnyObject 类型,并且不包含您尝试调用的方法。您可能需要将其转换为所需的类型。使用 if let 语句
-
@user1046037 谢谢。我在
let chargeCaptured、let chargeRefunded和let chargePaid行上遇到错误。 -
将这些对象投射到 Bool。使用
as运算符。你熟悉斯威夫特吗?如果是,那么请不要强制打开选项,除非您 100% 确定 -
@user1046037 这样吗? ` 让对象 = 成功为! NSArray for object in objects { let chargeCaptured = object["captured"] as Bool`
标签: ios swift parse-platform stripe-payments parse-cloud-code