gpt4 book ai didi

ios - 将类型 'JSON' 的非可选值与 'nil' 进行比较总是返回 true。有什么建议可以解决这个问题吗?

转载 作者:行者123 更新时间:2023-11-28 05:35:55 24 4
gpt4 key购买 nike

if let vendorId = vendor?.id {
APIManager.shared.getProducts(vendorId: vendorId, completionHandler: { (json) in

if json != nil { <<<<<<<<<Comparing non-optional value of type 'JSON' to 'nil' always returns true
self.products = []
if let tempProducts = json["products"].array {

for item in tempProducts {
let product = Product(json: item)
self.products.append(product)
}

self.tableView.reloadData()
Helpers.hideActivityIndicator(self.activityIndicator)
}
}
})
}
}

在我的 APIManager.swift

import Foundation
import Alamofire
import SwiftyJSON
import FBSDKLoginKit

class APIManager {

static let shared = APIManager()

let baseURL = NSURL(string: BASE_URL)

var accessToken = ""
var refreshToken = ""
var expired = Date()

//请求服务器函数

func requestServer(method: Alamofire.HTTPMethod , path: String, params: [String: AnyObject]?, encoding: ParameterEncoding, completionHandler: @escaping (JSON?) -> Void ) {

let url = baseURL?.appendingPathComponent(path)

refreshTokenIfNeed {
AF.request(url!, method: method, parameters: params, encoding: encoding, headers: nil).responseJSON{ response in

switch response.result {
case .success(let value):
let jsonData = JSON(value)
completionHandler(jsonData)
break

case .failure:
completionHandler(nil)
break
}
}
}

}

//API - 获取最新订单(客户)

 func getLatestOrder(completionHandler: @escaping (JSON) -> Void) {

let path = "api/customer/order/latest/"
let params: [String: Any] = [
"access_token": self.accessToken
]
requestServer(method: .get, path: path, params: params as [String : AnyObject], encoding: URLEncoding()) { (json) in
print(json!)
}
}
}

最佳答案

由于 json 在您的情况下不是可选的,因此将其与 nil 进行比较将始终返回 true。你根本无法将它与 nil 进行比较。如果您希望它是 nil,那么它应该是可选的。如果你确定它永远不会是nil,就让它像现在这样,去掉if条件即可。但请注意,如果它在运行时变为 nil,则会导致崩溃。

关于ios - 将类型 'JSON' 的非可选值与 'nil' 进行比较总是返回 true。有什么建议可以解决这个问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58637530/

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