5

我创建了一个简单的浏览器,可以使用 UIWebview 加载本地文件。起初,当我尝试预览 html 文件时,uiwebview 可以加载源文件并进行预览。但是在我最小化应用程序(应用程序进入后台),然后再次打开应用程序后,我收到了这个错误:

Error Dict: {
    NSNetServicesErrorCode = "-72000";
    NSNetServicesErrorDomain = 10;
}

之后,uiwebview 无法加载源文件,当我登录错误时(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error,它显示此消息:

Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo=0x53d610 {NSErrorFailingURLStringKey=http://localhost:9898/local/a.html?83C66B33-874C-41A7-BBF5-78D1615512DF, NSErrorFailingURLKey=http://localhost:9898/local/a.html?83C66B33-874C-41A7-BBF5-78D1615512DF, NSLocalizedDescription=Could not connect to the server., NSUnderlyingError=0x5ccaa0 "Could not connect to the server."}

该应用程序没有崩溃,但旋转指示器永远不会停止。

有人能告诉我是什么原因导致这个案子吗?以及如何解决?

谢谢 :)

4

3 回答 3

7

如果您查看NSNetServices标题内部,您将看到以下枚举来解释每个错误:

typedef NS_ENUM(NSInteger, NSNetServicesError) {

/* An unknown error occured during resolution or publication.
*/
    NSNetServicesUnknownError = -72000L,

/* An NSNetService with the same domain, type and name was already present when the publication request was made.
*/
    NSNetServicesCollisionError = -72001L,

/* The NSNetService was not found when a resolution request was made.
*/
    NSNetServicesNotFoundError  = -72002L,

/* A publication or resolution request was sent to an NSNetService instance which was already published or a search request was made of an NSNetServiceBrowser instance which was already searching.
*/
    NSNetServicesActivityInProgress = -72003L,

/* An required argument was not provided when initializing the NSNetService instance.
*/
    NSNetServicesBadArgumentError = -72004L,

/* The operation being performed by the NSNetService or NSNetServiceBrowser instance was cancelled.
*/
    NSNetServicesCancelledError = -72005L,

/* An invalid argument was provided when initializing the NSNetService instance or starting a search with an NSNetServiceBrowser instance.
*/
    NSNetServicesInvalidError = -72006L,

/* Resolution of an NSNetService instance failed because the timeout was reached.
*/
    NSNetServicesTimeoutError = -72007L,

};

您遇到服务冲突错误,这意味着具有相同域、类型和名称的网络服务已经在您的网络上发布其服务。

一般来说,我总是查阅头文件以获取错误代码。它们几乎总是由枚举值分配,并且枚举通常具有比使用的数字更具描述性的名称。

于 2015-11-10T14:24:02.900 回答
2

问题似乎是您尝试连接的主机:http://localhost:9898/local/[..]

你电脑上的 localhost 就是你的电脑,你 ipad 上的 localhost 就是你的 ipad——用于测试使用可解析的域名或 ip 地址。

于 2012-06-28T23:10:01.973 回答
0

Sergiu Todirascu 在问题中的评论为我解决了这个问题。Mac 沙盒导致此问题,我必须在权利选项卡中打开网络,在我的情况下,传入和传出网络复选框。创建一个答案,以便更容易看到。

于 2020-06-15T00:11:25.703 回答