alamofire 在模拟器中给出了准确的响应,但在设备中给出了错误

alamofire gives exact response in simulator but gives error in device

我是第一次使用 swift 语言进行项目。我已经将 alamofire 用于 Web 服务 api。我为它创建了一个通用的func

class func postWebService(methodname:String,param:NSDictionary,userName:String,password:String, CompletionHandler:(success:Bool,response:NSDictionary) -> ())
    {
        let mainlink :String = "mymainurl"
        var link = mainlink + methodname
        var url:NSURL = NSURL(string: link)!

        let plainString = "\(userName):\(password)" as NSString
        // example : let plainString = "textuser:testpwd" as NSString
        let plainData = plainString.dataUsingEncoding(NSUTF8StringEncoding)
        let base64String = plainData?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))

        Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = ["Authorization": "Basic " + base64String!]


        request(.GET, url, parameters: param as? [String : AnyObject]).responseJSON { (req, res, jsonresp, error) -> Void in
            if(error != nil) {
                NSLog("Error: \(req)  \(error)")
                var errDict:NSDictionary = ["message":"\(error?.localizedDescription)"]
                CompletionHandler(success: false,response: errDict)
            }
            else {

                var json: NSDictionary = jsonresp! as! NSDictionary
                NSLog("%@",json)
                CompletionHandler(success: true,response: json)

            }
        }
    }

它工作正常,当我在模拟器中 运行 时它给我响应。但是如果我在设备中加载我的项目而不是它给我一个错误

Optional(Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Invalid value around character 0.) UserInfo=0x17dc4580 {NSDebugDescription=Invalid value around character 0.})

如果代码中存在问题,那么它也不应该在模拟器中工作。它是用于 Web 服务 api 的很好的工作代码。任何帮助将不胜感激。提前致谢。

==== 编辑====

提及:它是服务器 url。

我又想通了一件事。如果我 运行 此代码在 ios 8 及更高版本的设备中工作正常。而这个问题发生在ios 7台设备上。我正在用 ios7 处理 iPod。我已经检查了 ios8 台设备,例如 iPhone 和 iPad,它工作正常。

可能是也可能不是你的情况,但我曾经在访问不正确的 url 时遇到过该错误。在我的例子中,它指向本地主机,这对模拟器来说是完美的,但在设备上完全没用。 仔细检查您的 URL,确保网络服务在线并且可以从您的设备访问... 希望这有帮助,如果没有其他人会插话 ;)

我研究过这个,主要是查了所有资料of Alamofire on github。在此页面中,我找到了解决方案,我的主要错误是 Alamofire 不支持 ios 7。它需要 ios 8+。

以上我的代码是正确的,适用于 Web 服务 api。 URL 和 Code 都没有问题。我的问题是 ios 7.0 不受支持,所以出现了这个问题。

所以,这是我自己的错误,而不是 Alamofire 框架或代码的错误。但是它应该支持 ios7,因为我们的项目不能忽略 ios 版本 7。可能有很多设备具有 ios7。感谢大家的支持。