应用卡在带有Xcode 11 beta的iOS 13 beta模拟器上,但在带有Xcode 10的iOS 13 beta模拟器上运行良好

时间:2019-08-26 08:59:57

标签: ios swift xcode ios13 xcode11

我面临一个非常奇怪的问题。在应用程序启动时,我调用API来获取令牌。在iOS 12之前,它都可以正常工作。但是,在iOS 13 beta版上,未调用完成关闭功能,并且应用程序会不断累积内存并最终崩溃。

但是,当我从Xcode 10运行相同的代码到iOS 13 beta模拟器时,它运行良好。

我附上了我用来调用API的代码,请帮助我。

这是我没有获得完成处理程序和控件的函数。

@discardableResult
static func requestObject<T: Decodable>(urlRequest: URLRequest, sessionManager: SessionManager? = nil, keyPath: String? = nil, decoder: JSONDecoder = JSONDecoder(), queue: DispatchQueue? = nil, completion: @escaping (NetworkResult<T>) -> Void) -> URLSessionTask? {

    let request = self.request(urlRequest: urlRequest, sessionManager: sessionManager)
        .responseDecodableObject(decoder: decoder, keyPath: keyPath, queue: queue) { (response: DataResponse<T>) in

            switch response.result {
            case .failure(let error):    completion(NetworkResult.failure(error))
            case .success(let value):    completion(NetworkResult.success(value))
            }
    }

    return request.task
}

这是我调用的请求函数。

static func request(urlRequest: URLRequest, sessionManager: SessionManager?) -> DataRequest {

    guard let sessionManager = sessionManager else {
        return Alamofire.request(urlRequest)
            .validate { (request, response, data) -> Request.ValidationResult in
                return self.validation(request: request, response: response, data: data)
        }
    }

    return sessionManager.request(urlRequest)
        .validate { (request, response, data) -> Request.ValidationResult in
            return self.validation(request: request, response: response, data: data)
    }
}

2 个答案:

答案 0 :(得分:4)

找到解决方案,最后:)

实际上,我的主线程被阻止了,并且它阻止了所有其他线程,并且应用程序继续累积内存。我使用的是第三方标签,这导致了该问题。

这是负责此问题的代码。

override func layoutSubviews() {
    super.layoutSubviews()
    self.frame = self.frame.insetBy(dx: 0, dy: -3)
}

到iOS 12为止,一切正常。但是它保留了iOS 13中的主线程,并导致在收集太多内存后应用程序崩溃。

我从layoutsubviews中删除了框架更新代码,并且一切正常:)

答案 1 :(得分:0)

这听起来像是iOS 13 Beta错误。您可以在这里https://developer.apple.com/bug-reporting/

举报