小编RTa*_*che的帖子

获取时间线后,iOS 14 小部件扩展程序崩溃

我正在实现一个小部件扩展,当完成句柄被调用时它会随机崩溃。抛出异常 "-[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)

widget ios swift

5
推荐指数
1
解决办法
1034
查看次数

标签 统计

ios ×1

swift ×1

widget ×1