首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的错误nw_protocol_get_quic_image_block_invoke dlopen libquic失败

奇怪的错误nw_protocol_get_quic_image_block_invoke dlopen libquic失败
EN

Stack Overflow用户
提问于 2020-09-23 22:09:54
回答 7查看 41.7K关注 0票数 43

一般来说,我刚接触swift和iOS,请记住这一点。

打开CFReadStream时出现此错误。无论我是打开读还是写流,应用程序总是失败。

代码语言:javascript
复制
    var readStream: Unmanaged<CFReadStream>?
    var writeStream: Unmanaged<CFWriteStream>?
    let host: CFString = NSString(string: hostIP)
    let port: UInt32 = UInt32(self.VNCport)
    
    self.password = password
    
    CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, host, port, &readStream, &writeStream)

    inputStream = readStream!.takeRetainedValue()
    outputStream = writeStream!.takeRetainedValue()
    
    if readStream == nil {
        print("Erro read")
    }
    
    if writeStream == nil {
        print("Erro write")
    }
    
    inputStream!.delegate = self
    outputStream!.delegate = self
    
    inputStream!.schedule(in: RunLoop.main, forMode: RunLoop.Mode.default)
    outputStream!.schedule(in: RunLoop.main, forMode: RunLoop.Mode.default)
    inputStream!.open()
    outputStream!.open()

我用这个函数和一个按钮创建了一个干净的项目,结果是一样的。项目中没有使用quic库。

有人能帮帮忙吗?

EN

回答 7

Stack Overflow用户

发布于 2020-10-21 21:42:02

我在不同的上下文中也遇到了同样的错误,在XCode 12.0.1中也是如此。It 可能不相关,但我怀疑这是访问主线程的循环的问题。我只是在尝试我在网上找到的一些介绍性代码,并面临着同样的问题,所以这是一个bug,而不是你的代码的问题。下面是如何获得具有相同问题的代码的方法:

代码语言:javascript
复制
git clone git@github.com:BestKora/CS193P-Fall-2017-Demo-iOS12.git
cd "CS193P-Fall-2017-Demo-iOS12/Cassini L10"
xed . # this opens XCode (CLI tool stands for XCode editor)

话虽如此,通过重写代码,我能够防止这个问题。也许你可以在下面的代码中找到一些东西来解决你的特定问题:

具体地说,不使用以下代码(DispatchQueue.global)

代码语言:javascript
复制
    private func fetchImage() {
        if let url = imageURL {
            spinner.startAnimating()
            DispatchQueue.global(qos: .userInitiated).async { [weak self] in
                let urlContents = try? Data(contentsOf: url)
                DispatchQueue.main.async {
                    if let imageData = urlContents, url == self?.imageURL {
                        self?.image = UIImage(data: imageData)
                    }
                }
            }
        }
    }

我使用URLSession.shared.dataTask,这个错误不再发生:

代码语言:javascript
复制
    private func fetchImage() {
        print("fetching image")
        if let url = imageURL {
            
            let task = URLSession.shared.dataTask(with: url) {(data, response, error) in
                guard let data = data else {
                    return
                }
                // maybe try dispatch to main
                DispatchQueue.main.async {
                    self.imageView.image = UIImage(data: data)
                }
            }
            task.resume()
        }
    }
票数 6
EN

Stack Overflow用户

发布于 2020-10-06 23:53:11

我在Widget Target中也遇到了同样的问题,但通过将"public“添加到变量来解决它。

固定结构如下所示。

代码语言:javascript
复制
struct LastCommitEntry: TimelineEntry {
    public let date: Date
    public let commit: Commit
}
票数 2
EN

Stack Overflow用户

发布于 2021-04-18 13:31:53

重新启动我的模拟器起到了作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64029844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档