0

この質問はこれと非常によく似ています

しかし、受け入れられた答え(そして唯一の答え)は私の問題を解決しません。

とりわけ、WebサーバーからのHTML5でいくつかのアプリコンテンツを表示するUIWebViewのセットを備えたUITabViewを含む「ハイブリッド」iOSアプリがあります。内部には、バックグラウンドでコンテンツをキャッシュする小さな自家製のキャッシュエンジンがあります。このキャッシュエンジンは、この行を使用してデータを入力します

[NSData dataWithContentsOfURL:request.URL options:NSDataReadingUncached error:&error];

これまでのところ、アプリは問題なく完全に機能していますが、iOS6では機能しなくなりました。デバッガーを使用して、機能していないのは上記の行であるという結論に達しました。上記の行をまたぐと、ページを読み込めず、しばらくするとエラー256が発生します。iOS5に切り替えると、完全に機能します。

NSURL-object request.URLを印刷しましたが、本来あるべきように見え、次のように「http://」部分が含まれています。

http://app.customername.com/.mvc/MobileApp/Index

また、アプリケーションのWebサイトとは関係のないテストページ、自分で作成した非常に単純なhtmlページ、およびhttp://www.google.comをロードしてみました。

どちらもiOS5.1で機能しましたが、iOS6のこれらのページでも同じ問題が発生しました。

私もこのような「Uncached」オプションなしでメソッドを使用しようとしましたが、それでも運がありません:

[NSData dataWithContentsOfURL:request.URL]

iOS 6でメソッドdatadataWithContentsOfURL:について何か変更があり、他の誰かがこの問題を見たことがありますか?

4

1 に答える 1

2

それで、私は同じ正確な問題を抱えていました、そして私は正確な原因を知りません。

NSURLCacheスレッドがdataWithContentsOfURLでうまく機能していないことに関係していると思います。誰かが理由を知っているなら、チャイムを入れてください。

結論として、私はすでにプロジェクトにASIHTTPを持っていたので、これを置き換えました。

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];

これとともに:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:url]];
[request startSynchronous];        
NSData *data = [request responseData];

そして今、すべてが順調です。

于 2012-10-17T22:53:02.433 に答える