Ios NSOperationQueue NSOperation(QOS_遗留)问题
我在Swift 2发布之前部署了我的代码,通过Crashlytics,我每天大概会在这个函数中发生2-3次崩溃。我不能,为了我的生命,弄清楚发生了什么。我有数千名用户,但在使用该应用程序的无数用户中,Crashlytics每天都会收到8-10个错误报告 错误是:Ios NSOperationQueue NSOperation(QOS_遗留)问题,ios,swift,swift2,ios9,nsoperationqueue,Ios,Swift,Swift2,Ios9,Nsoperationqueue,我在Swift 2发布之前部署了我的代码,通过Crashlytics,我每天大概会在这个函数中发生2-3次崩溃。我不能,为了我的生命,弄清楚发生了什么。我有数千名用户,但在使用该应用程序的无数用户中,Crashlytics每天都会收到8-10个错误报告 错误是: _TFZFC11 GProxy8GetAsyncFMS0_U_S_14Deserializable__FTGCS_10 GRequestQ__8callbackFGCS_11 GResponseGSaQ0___ T__T_U_FTGS
_TFZFC11 GProxy8GetAsyncFMS0_U_S_14Deserializable__FTGCS_10
GRequestQ__8callbackFGCS_11 GResponseGSaQ0___
T__T_U_FTGSQCSo6NSData_GSQCSo13 NSURLResponse_GSQCSo7 NSError__T_
(GProxy.swift:141)
我正在向我的服务器发出请求,处理一个数组,并在回调中使用它做一些事情(在我的应用程序中的其他地方)
代码如下:
class func GetAsync<R, T: Deserializable>(request: GRequest<R>, callback: (GResponse<Array<T>>) -> ())
{
var list = Array<T>()
var response = GResponse<Array<T>>()
let serverRequest = NSMutableURLRequest(URL: NSURL(string: API_URL + request.Url)!)
serverRequest.HTTPMethod = "GET"
let task = NSURLSession.sharedSession().dataTaskWithRequest(serverRequest,
completionHandler: {
data, r, error in
if error != nil {
response.Status = .ERROR
} else {
do
{
let responseArray = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as! NSArray
for item: AnyObject in responseArray {
let row = T(dict: item as! NSDictionary)
list.append(row)
}
response = GResponse<Array<T>>(status: ResponseCode.OK, value: list)
}
catch let err as NSError{
//I now log here (this is new code, before I was not)
}
}
callback(response)
})
task.resume()
}
类func GetAsync(请求:GRequest,回调:(gressponse)->())
{
var list=Array()
var response=gressponse()
让serverRequest=NSMutableURLRequest(URL:NSURL(字符串:API\u URL+request.URL)!)
serverRequest.HTTPMethod=“GET”
让task=NSURLSession.sharedSession().dataTaskWithRequest(serverRequest,
completionHandler:{
数据,r,中的错误
如果错误!=nil{
response.Status=.ERROR
}否则{
做
{
让responseArray=try NSJSONSerialization.JSONObjectWithData(data!,options:.MutableContainers)作为!NSArray
对于项:responseArray中的任何对象{
设行=T(dict:item as!NSDictionary)
list.append(行)
}
response=greponse(状态:ResponseCode.OK,值:list)
}
以讹传讹{
//我现在在这里登录(这是新代码,在我没有登录之前)
}
}
回调(响应)
})
task.resume()
}
这里是否有可能发生撞车的重大失误?是否看到任何明显错误或潜在问题?我没有部署时的实际来源(我对这个类进行了更改,所以我不记得第141行是什么,但崩溃消息似乎与NSURLResponse等有关。有什么想法吗
非常感谢!您对此有任何线索吗?没有,但我也没有遇到任何重大错误,因此我的假设是这一切正常。代码中充满了强制展开和许多潜在问题。崩溃到底是什么?回溯?