我创建了一个可以使用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."}
应用程序没有崩溃,但旋转指示器永远不会停止。
有人可以告诉我这个案子的原因是什么?以及如何解决它?谢谢:)
答案 0 :(得分:6)
如果查看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,
};
您收到服务冲突错误,这意味着具有相同域名,类型和名称的网络服务已在您的网络上发布其服务。
通常,我总是查阅头文件以获取错误代码。它们几乎总是由枚举值赋值,枚举通常具有比使用的数字更具描述性的名称。
答案 1 :(得分:2)
问题似乎是您尝试连接的主机:http://localhost:9898/local/[..]
您计算机上的Localhost是您的计算机,ipad上的localhost是您的ipad - 用于测试使用可解析的域名或IP地址。
答案 2 :(得分:0)
Sergiu Todirascu在问题中的评论为我解决了。 Mac Sandbox造成了这种情况,因此我必须在“权限”选项卡中打开“网络”(在我的情况下为“传入和传出网络”复选框)。创建一个答案,这样更容易看到。