gpt4 book ai didi

ios - NSJSONSerialization.JSONObjectWithData 导致应用程序在 alamofire 迁移后崩溃

转载 作者:行者123 更新时间:2023-11-29 01:02:57 25 4
gpt4 key购买 nike

我是 iOS 新手,开发速度很快。我最近将 alamofire lib 迁移到 V3.0,这产生了代码错误。我设法解决了所有问题。然而还有最后一个问题。我有一个名为 Webservices 的类,用于调用 Web 服务。它有一个名为 postCustomLogin 的方法。在我的一个 View Controller 中,我调用它,当我运行应用程序时,它在这一行崩溃:

errorCode = try NSJSONSerialization.JSONObjectWithData(result.value as! NSData , options:NSJSONReadingOptions.AllowFragments ) as! NSString

这是函数的定义:

class func postCustomLogin(email: String, password: String, completionHandler: ( Result<AnyObject, NSError>) -> Void) {
Alamofire.request(.POST, baseURL + "CustomLogin", parameters: ["email": email, "password": password])
.validate()
.responseJSON {(response) in
if (response.result.isSuccess) {
if let jsonDict = response.result.value as? NSDictionary {
User.createEntityWithDictionnary(jsonDict)
//Save NSManagedObjectContext.MR_defaultContext().MR_saveToPersistentStoreAndWait()
}
}
completionHandler(response.result)
}
}

这是我调用该函数的地方:

Webservices.postCustomLogin(user!, password: password!, completionHandler: { (result) in
do {
if (result.value != nil)
{
errorCode = try NSJSONSerialization.JSONObjectWithData(result.value as! NSData , options:NSJSONReadingOptions.AllowFragments ) as! NSString//crash

最佳答案

您正在强制解包您的可选值。如果您的 result.value 不是 NSData尝试 NSJSONSerialization.JSONObjectWithData(result.value as! NSData , options:NSJSONReadingOptions.AllowFragments ) as! NSString//crash 不是 NSString 你的应用崩溃。尝试使用此代码安全解包:

if let resultData = result.value as? NSData{
if let anErrorCode = try NSJSONSerialization.JSONObjectWithData(resultData , options:NSJSONReadingOptions.AllowFragments ) as? NSString
error = anErrorCode
....
....
}

关于ios - NSJSONSerialization.JSONObjectWithData 导致应用程序在 alamofire 迁移后崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36794926/

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