我正在Xcode中配置新的Firebase应用程序,但在控制台中反复打印“ nw_connection_receive_internal_block_invoke [C1]接收答复失败,错误为'操作取消'”。我应该怎么做才能解决这个问题?
这是在Xcode 11 Beta 3中,并且由于原始文件是从旧版本的Xcode创建的,所以我尝试过一起创建一个新项目,但是即使我已完成所有操作,我仍会在控制台中反复打印此错误。配置后一次。
我希望在控制台中看不到任何错误,但是会多次打印此错误。
目前我正在使用NetServiceBrowser查找 Bonjour 服务并解析相应的地址和端口。
为了NWBrowser简化我的代码,我偶然发现它似乎提供了一个非常简单的界面来处理 Bonjour 发现。
但是,browseResultsChangedHandler返回包含 enum case 端点的结果和更改service。我试图从结果中获取地址和端口信息,但似乎NWEndpoint必须是枚举类型 .hostPort。
理想情况下,我会使用端点连接到服务器NWConnection,但是,我使用的是另一个不NWEndpoint直接处理 的库。
是否有(简单的)方法可以从NWEndpoint.service结果中获取地址和端口信息?
import Foundation
import Network
let browser = NWBrowser(for: .bonjour(type: "_http._tcp", domain: ""), using: NWParameters())
browser.browseResultsChangedHandler = { (results, changes) in
print("Results:")
for result in results
{
if case .service(let service) = result.endpoint
{
debugPrint(service)
}
else
{
assert(false, "This nevers gets executed")
}
}
print("Changes:")
for change in changes
{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Swift 中的 Network.framework 为我的 iOS 应用程序获取在本地网络上运行的 Bonjour 服务列表。为了发现与我的应用程序运行时使用相同协议版本的设备,我需要能够查看网络上运行的 Bonjour 服务的 TXT 记录。但是,当我尝试打印时result.endpoint.txtRecord总是返回零。
下面是我的代码示例(经过简化以重点关注此示例的关键部分):
let parameters = NWParameters.tcp
parameters.includePeerToPeer = true
parameters.allowLocalEndpointReuse = true
let browser = NWBrowser(for: .bonjour(type: "_tictactoe._tcp", domain: nil), using: parameters)
browser.browseResultsChangedHandler = { results, changes in
for result in results {
print("Browser result. txtRecords: \(result.endpoint.txtRecord)")
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用iOS 12中引入的新“网络”库,但无法弄清楚为什么用户连接后网络状态没有更新为.satisfied。
这是到目前为止的代码:
import Network
class MapViewController: UIViewController {
let networkMonitor = NWPathMonitor()
let queue = DispatchQueue(label: "NetworkMonitor")
override func viewDidLoad() {
super.viewDidLoad()
// check for internet connection
networkMonitor.pathUpdateHandler = { path in
if path.status != .satisfied {
// alert the user to check internet connection
let alert = UIAlertController(title: "Internet Error", message: "Unable to connect. Please check your internet connection.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Cancel", style: .default, handler: nil))
alert.addAction(UIAlertAction(title: "Retry", style: .default, handler: { (action) in
// TODO: after …Run Code Online (Sandbox Code Playgroud)