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 に答える