問題タブ [nsurlconnection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - connectionDidFinishLoadingが何かを返す(無効にする)にはどうすればよいですか?
私はこの簡単なシナリオを持っています:
- main.m (これは私のメイン クラスです)
- myClass.m (追加クラス)
私の計画では、このようなことが起こるはずです
(MAIN.m 内)
myClassが行うことは、新しい NSURLConnection を開き、いくつかのデータを取得し、準備ができたらそれを解析して配列を返すことです。
解析されたデータを含む配列を返すには、これを簡単に書きました
データのダウンロードが実際にいつ終了し、いつ解析を開始するかを知るために、私は使用しています
しかし、connectionDidFinishLoading が VOID の場合、returnArrayをどこでどのように呼び出すことができますか? :(
これが理にかなっていることを願っています...私は本当に立ち往生していて、解決策を見つけることができないようです. NSNotification を試してみましたが、どちらもうまくいかないようでした。
みんな応援ありがとう!エンリコ
iphone - NSURLConnectionのuserAgentを変更する
ねえ、私はデータを受信するためにNSURL接続を使用しています。
ユーザーエージェントの文字列を変更することはできますか?現在は次のとおりです。
AppName / AppVersion CFNetwork / 459 Darwin / 10.0.0.d3
iphone - meta http-equiv="Refresh" および NSURLConnection
次のようなメタ リダイレクトを含むhttp://www.test.comなどの URL があります。
ただし、- (void)connectionDidFinishLoading:(NSURLConnection *)connection
最初の URL から初期データを返すだけです。
返された HTML ファイルを解析し、メタ URL 属性を取り出して NSURLConnection を再度呼び出すのは私の責任ですか? それとももっと良い方法がありますか?
このアプローチはどの程度安全ですか?
おそらく別のリダイレクト方法を使用する方が良いでしょうが、今のところ、これが私に開かれている唯一のものです...
iphone - NSURLConnection デリゲートでリリースを呼び出すタイミングは?
NSUrlConnection
次のようにオブジェクトにデリゲートを渡す場合:
いつデリゲートでリリースを呼び出す必要がありますか? にあるはずconnectionDidFinishLoading
ですか?もしそうなら、私は取得し続けexec_bad_access
ます。デリゲートがインストルメントから漏れているのがわかります。
ありがとう
iphone - iPhone アプリでのメモリの割り当て、解放、および NSURLConnection
誰かがこれで私を助けてくれることを願っています。簡単な質問であるべきことに対する答えを見つけるのに苦労しています。ところで、これは何年にもわたって c と c# を使用してきた私の最初の主要な obj-c プロジェクトなので、私が失敗していることを遠慮なく指摘してください。
写真のアルバムを UIScrollView にロードするように設計された iPhone アプリがあります。また、同じプロセスを使用しますが、単一の画像のみを表示するランダム画像機能もあります。次のように機能します。
- 解析された写真のランダム URL へのパスを含む外部 XML フィード (ruby-on-rails Web サイトに保存されている) を読み取ります。
- URL のコンテンツは、NSURLConnection を使用して NSData にダウンロードされます。
- ScrollView が作成され、プッシュされます
- サブクラス化された UIView は UIImageView を割り当て、NSData を使用して UIImage を割り当て、UIimage で UIImageView を初期化し、最後に imageview を UIView に追加します。
- 次に、親ビューは UIView を UIScrollView に追加し、これが前面にプッシュされます。
このプロセスは、次のランダム イメージが必要になったときに再び発生します。いくつかの UIView が UIScrollView に追加されることを除いて、画像のアルバム全体を表示するときにも同じプロセスを使用します。
問題は、必要に応じて release と delloc を使用しているにもかかわらず、次の画像が要求されたときに NSURLConnection と UIImage で使用されているメモリがメモリから解放されていないことをアクティビティ ツールが示していることです。これは、アプリを iPhone にビルドすることでさらに証明されます。複数の画像を連続してリクエストすると、おそらくメモリ消費が原因でアプリがクラッシュします。
以下は、契約上の合意によりプロジェクト全体を投稿できないため、コードの一部です。
URLDownload クラス (DataDownload を使用)
DataDownload クラス
ImageView サブクラス
画像がどのように表示されているかのサンプルコード
次の画像は、何が起こっているかを説明するためにすべての割り当てを示しています。1 は起動時の割り当てを示し、2 は最初のイメージがロードされた後を示し、3 は 2 番目のイメージがロードされた後を示します。
http://www.gretanova.com/misc/iphone/1.png & 2.png & 3.png
みんなありがとう、リー
iphone - NSURLConnection オブジェクトを再利用しますか?
HTTP 経由でサーバーとかなりの量の通信を行うアプリがありますが、これらの接続が重複している可能性があります。データを非同期でロードする予定です。メモリの割り当てに関連するパフォーマンス ヒットがあることは理解しています。そのため、サーバーとの通信が必要になるたびに、接続オブジェクトのセットを保持しておくのが賢明であると考えました。新しい接続を割り当てる必要はなく、アイドル状態の接続を再利用するだけです。ただし、既存の接続を新しいリクエスト オブジェクトで開始する方法はないようです。これは私が見逃しているものですか、それとも間違ったツリーを吠えていますか?
iphone - サーバーに画像をアップロードするときに進行状況バーを表示する
私のアプリは私のサーバーに画像をアップロードします。このイベントを進行状況バーで表示したい。
上記の方法を使用して、コンソールで進行状況を確認します。しかし、「進行状況バー」を使用してnibファイルでそれを行うにはどうすればよいですか?
nsurlconnection - NSURLConnection のリーク -- なぜ?
NSURLConnection *接続はクラスのプロパティです
Instruments は、以下のコードの 2 行目で NSURLConnection オブジェクトをリークしていると報告しています。
didFinishLoading
およびデリゲート セレクターではdidFinishWithError
、接続を解放し、nil に設定しています。
「NSURLConnection リーク?」を読みました。ポストと他のいくつか。完全に明らかな何かを見逃しているに違いないと感じています。ヘルプ?
objective-c - バックグラウンドスレッドからサーバーへの非同期リクエスト
バックグラウンドスレッドからサーバーへの非同期リクエストを実行しようとすると、問題が発生します。私はそれらの要求の結果を得たことがありません。問題を示す簡単な例:
それから私はこれをメインスレッドから呼び出します
メソッドdownloadImageは以下のとおりです。
問題は、メソッドimageDownloadDidFinishが呼び出されないことです。さらに、どの方法もありません
と呼ばれます。しかし、私が交換した場合
に
すべてが正しく機能しています。非同期リクエストが終了する前にバックグラウンドスレッドが停止し、これが問題の原因になると思いますが、よくわかりません。私はこの仮定で正しいですか?この問題を回避する方法はありますか?
同期要求を使用してこの問題を回避できることはわかっていますが、これは単純な例であり、実際の状況はより複雑です。
前もって感謝します。
objective-c - NSImageに非同期NSURLConnectionからのデータを入力する
デスクトップアプリ(iPhoneアプリケーションではありません!!)の非同期NSURLConnectionから返されたデータをNSImageに取り込む方法を理解しようとして、ことわざの壁にぶつかりました。
これが状況です。
カスタムセルを使用しているテーブルがあります。各カスタムセルには、WebサーバーからプルされているNSImageがあります。画像にデータを入力するために、同期リクエストを簡単に実行できます。
これに伴う問題は、画像が入力されるまでテーブルがブロックされることです(明らかに同期要求であるため)。大きなテーブルでは、これによりスクロールが耐えられなくなりますが、画像のサイズが大きい場合は、最初の実行で画像を入力するだけでも面倒な場合があります。
そこで、 Appleのドキュメントに従って、独自のスレッドでデータを取得する非同期リクエストクラスを作成します。問題ありません。データがプルされ、データが入力されているのを(ログファイルを介して)確認できます。
私が抱えている問題は、データを取得したら、呼び出し元のクラス(カスタムテーブルビュー)へのコールバックが必要になることです。
私はこのようなことができるという印象を受けましたが、(私が想定しているように)私の呼び出しクラスが本当に必要としているのはデリゲートであるため、機能しません。
接続クラスのデリゲートでは、データを取得していることがわかりますが、呼び出し元のクラスにデータを戻す方法がわかりません。私のconnectionDidFinishLoading
方法はAppleドキュメントから直接です:
これが解決するのが簡単な問題であることを願っていますが、私はこれについての知識の限界に達しているのではないかと心配しています。
最終的には、アプリの高度なキャッシュメカニズムを使用して、テーブルビューでローカルマシンの画像をチェックしてからサーバーから画像を取得し、画像が取得されるまで進行状況インジケーターを表示するようになります。現在、同期プロセスを使用して画像が十分に大きい場合、ローカル画像の作成でさえも遅くなる可能性があります。
ありとあらゆる助けをいただければ幸いです。
ソリューションの更新
ベンの助けのおかげで他の誰かが同様の解決策を必要とする場合に備えて、ここで私が思いついたものです(もちろん一般的に投稿用に変更されています)。また、画像のカスタムキャッシュを実装し、画像を呼び出すためにアプリのさまざまな場所で使用できるように、画像読み込みクラスを汎用的にしたことを覚えておいてください。
私の呼び出しメソッドでは、私の場合はテーブル内のカスタムセルでした...
これにより、myLoaderクラスのインスタンスが作成され、4つのパラメーターが渡されます。取得する画像のURL、通知オブザーバーを設定するときに呼び出しを行ったクラスを決定するために使用する一意の参照、画像のID、画像をキャッシュに保存するかどうか、パスキャッシュに。
私のImageLoaderClassは、呼び出し元のセルから渡されるものを設定する上記のメソッドを定義します。
このconnectionDidFinishLoading
方法では、必要に応じてファイルをキャッシュに保存し、リスニングオブザーバーに通知呼び出しを行いました。
最後に、テーブルコントローラーでオブザーバーを設定して通知をリッスンし、カスタムセルの再表示を処理するメソッドに送信します。
問題が解決しました!