我正在实现一个小部件扩展,当完成句柄被调用时它会随机崩溃。抛出异常
"-[NSConcreteFileHandle fileDescriptor]: Invalid argument"
这是我的实现:
func getTimeline(in context: Context, completion: @escaping (Timeline<Entry>) -> ()) {
let countArticles = self.countArticles(dependingOn: context.family)
self.backendService.fetchArticles(countArticles: countArticles) { [weak self] (result) in
let secondsUntilNextRefresh = TimeInterval(10 * 60)
let dateToInvokeNextRefresh = Date().addingTimeInterval(secondsUntilNextRefresh)
let timelineEntries = TimelineMapper().mapArticlesResultToTimelineEntry(result)
let timeline = Timeline(entries: timelineEntries,
policy: .after(dateToInvokeNextRefresh))
DispatchQueue.main.async {
completion(timeline)
}
}
}
Run Code Online (Sandbox Code Playgroud)
和堆栈跟踪
#0 0x00007fff20177f48 in objc_exception_throw ()
#1 0x00007fff2078b731 in _NSFileHandleRaiseOperationExceptionWhileReading ()
#2 0x00007fff2078adb1 in _NSFileHandleRaiseOperationException ()
#3 0x00007fff2078ada6 in -[NSConcreteFileHandle fileDescriptor] ()
#4 0x00007fff55c32ad4 in …
Run Code Online (Sandbox Code Playgroud)