我正在尝试使用新的组合框架解析 JSON。但是,我所做的每一次尝试都会返回一个取消的错误。当我使用完全相同的 url 而没有组合时,它工作正常。
底部函数工作正常,无论我做什么,顶部函数都会给我一个错误。
static func performNetworkRequestUsingCombine(url urlWithQuery:URL){
//let decoder = JSONDecoder()
let publisher = URLSession.shared.dataTaskPublisher(for: urlWithQuery)
.map({$0.data})
.eraseToAnyPublisher()
.sink(receiveCompletion: { (status) in
switch status {
case .failure(let incomingError):
print(incomingError.localizedDescription)
case .finished:
break
}
}) { (data) in
let dataString = String(data: data, encoding: .utf8)
print(dataString!)
}
publisher.cancel()
}
static func performNetworkRequest(url urlWithQuery: URL, dataValue : @escaping (WeatherObject)->Void){
let decoder = JSONDecoder()
let task = URLSession.shared.dataTask(with: urlWithQuery) { (data, response, error) in
if error != nil {
print(error!.localizedDescription)
return …
Run Code Online (Sandbox Code Playgroud) 在 SwiftUI 中,如果您要使用 NavigationLink() 转换为 UIViewControllerRepresentable 您会怎么做?例如,添加按钮或更改导航栏上的标题属性。
这就是我现在正在做的事情:
import SwiftUI
/// Controls the actual action performed by the button upon taps.
struct CatagoryButton: View {
@State var isPresenting :Bool = false
var company : Company?
var text : String
var body: some View {
NavigationLink(destination: UIKitWrapper(company: self.company, storyboardPointer: self.text)
.navigationBarTitle(self.text)
.edgesIgnoringSafeArea(.all),
isActive: self.$isPresenting,
label: {
Button(action: {
self.isPresenting.toggle()
}){
ZStack {
ButtonShadowLayer(text: text)
GradientBackground()
.mask(ButtonBaseLayer())
CircleAndTextLayer(text: text)
}
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的代表的结构。
import SwiftUI
/// Wraps UIKIT instance in …
Run Code Online (Sandbox Code Playgroud)