問題タブ [nsinputstream]

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.

0 投票する
1 に答える
1461 参照

ios - NSURLConnection とバインドされたストリームのペア (CFStreamCreateBoundPair または CFStreamCreateBoundPairCompat) が iPhone 3G で機能しない

SimpleURLConnections の例を使用して、バインドされたストリームのペアを使用して multipart/form-data POST リクエストを実装しています。シミュレーターと iPhone 3GS/iPhone 4 でうまく動作します。

iPhone 3G (3.1.3 を実行) で試してみると、サーバーにデータが送信されません。NSURLConnection は、タイムアウトするまでハングし続けます。いくつかのテストの後、接続ごとにプロデューサーストリームに複数回書き込むときにのみ問題が発生することがわかりました。複数回書き込む必要がある場合 (つまり、複数の NSStreamEventHasSpaceAvailable イベントに応答する必要がある場合) は常に、動作が停止します。

これは同じ問題のように見えます: NSURLRequest with HTTPBody input stream: Stream sent event before being open、回避策はありますが、問題を解決するために正確に何を遅らせる必要があるのか​​ わかりません.

0 投票する
2 に答える
595 参照

nsinputstream - NSInputstream について

Documents のファイルに、このメソッドを使用してバッファにロードしたいのですが、実際には Read は常に -1 です。私のメソッドに何か問題がありますか?

0 投票する
1 に答える
431 参照

iphone - istreamとostreamのiphone機能

次のコードで istream と ostream の機能を教えてください

0 投票する
1 に答える
424 参照

ios - EAAccessory を使用して iOS でアクセサリの状態を処理する

私は EAAccessory プロジェクトに取り組んでおり、通常はすべてが機能しています。付属品は、ドックと接続する 5 つのボタンを備えたリモコンで、ドックは私のアプリにコマンドを送信します。これはうまくいきます。ただし、ボタンの状態を追跡するように求められているので、ボタン 1 と 2 が 1 秒間一緒に保持されているかどうかを認識できるはずです。これはかなり複雑なようで、代わりにドックで処理してほしいと思います。

バイトである単一のコマンドを介して外部アクセサリの状態をモデル化する場合、どのようなプログラミング プラクティスが適切ですか?

0 投票する
3 に答える
3745 参照

objective-c - ファイルからコンテンツを読み取るときに、NSInputStream に対して NSStreamEventEndEncountered が発生しない

ファイル (IOS) からコンテンツをロードするために NSInputStream を作成しました。

次に、イベント ハンドラーを追加します。

イベント:NSStreamEventEndEncountered をキャッチしたいのですが、起こりませんでした。NSStreamEventOpenCompleted と NSStreamEventHasBytesAvailable しかキャッチできません。

何か間違っていますか?助けてくれてありがとう!

0 投票する
1 に答える
1122 参照

nsinputstream - NSInputStream read:maxBytes は常に 0 を返します

私は困惑しています。使用可能なバイトがあると考えるオープン NSInputStream があります。バイトを読み取ると、操作は常に 0 を返します。どこでも検索しましたが、私のコードは他のほとんどの人が同じことをしているように見えます。これは非常に低レベルの操作であるため、どのように問題が発生するのかわかりません。さまざまなホストに接続して、これを試しました。また、Wireshark で監視したところ、ホストが書き込みバイトを受信して​​いることがわかりますが、read:maxBytes 操作は常に 0 を返します???

0 投票する
1 に答える
1097 参照

cocoa-touch - Cocoaのストリームクラスはシークをサポートしていますか?

メモリストリームからの読み取りと書き込みが可能で、シークをサポートするCocoaクラスが必要です。C#ではMemoryStream、メソッドをサポートしseek、JavaではByteArrayInputStream、メソッドmark、、、skipおよびをサポートしますreset

iOS開発では、同等のクラスとメソッドは何ですか?

プロジェクトに上記の機能が必要ですが、デフォルトでiOSフレームワークでサポートされていない場合、独自の機能を実装するための最良の方法は何でしょうか。たとえば、NSInputStream/から継承する独自のストリームサブクラスを記述しNSOutputStreamます。これには、内部でカスタムコードが含まれますか?

0 投票する
0 に答える
389 参照

iphone - MpMoviePlayer は NSInputStream からデータを取得できますか

別の iPad からのネットワーク接続を持つ iPad アプリがあります。クライアント iPad で、(サーバー iPad からの) NSInputStream からデータを取得し、サーバー iPad からダウンロードするときに MpMoviePlayer で再生できるようにしたいと考えています。

ビデオ全体をダウンロードしてファイルに保存し、メディア プレーヤーで開くことができることはわかっていますが、ファイル全体がダウンロードされる前に再生を開始できるようにしたいと考えています。

そのチャンクをファイルに保存して再生し、ストリームで使用可能になったときにファイルに追加しようとしたことはありません.a)ファイルがロックされる可能性が高く、b)ムービープレーヤーがファイルを保存して内部キャッシュに読み込むため、後でファイルに追加しても新しいコンテンツは再生されません (私はそうは思いません)。誰も素晴らしいアイデアを持っていない場合は、将来的に試してみるつもりですが、うまくいく可能性は非常に低く、成功する可能性は 10% だと思います。

MpMoviePlayer に initWithData メソッドがある場合は、単純に NSMutableData を指定し、ストリームで使用できるようになったときにデータを追加しますが、そのようなメソッドは見当たりません。どうすればこれを行うことができるかについて誰かアイデアがありますか?

0 投票する
0 に答える
506 参照

iphone - 2 つの NSURLConnections 間のストリーミング、NSInputStream 読み取りのブロックはすべての接続をブロックしますか?

2 つの iOS NSURLConenctions (1 つはダウンロード、もう 1 つはアップロード) の間でデータをストリーミングしようとしていますが、うまくいかないようです。

  • 2 つの NSURLConnections を同時に実行しています。
  • 1 つは、GET 要求を使用して URL からコンテンツをダウンロードすることです。
  • もう 1 つは、PUT 要求の要求本文で、受信したばかりの同じコンテンツを別の URL にアップロードすることです。
  • アップロード接続では、 setHTTPBodyStream を使用して、読み取りメソッドが他の接続から以前に受信したデータを返すカスタム NSInputStream を指定しています。
  • 両方の NSURLConnections は、別々のバックグラウンド スレッドの実行ループでスケジュールされているため、(ブロックしている可能性がある) デリゲート コールバックが互いに (メイン スレッドとも) 干渉しないようになっています。

だから私はそれが次のように機能すると思った:

  • アップロード接続は、入力ストリームで [read:maxLength] (オーバーライドしました) を呼び出します。
  • 利用可能なデータがまだないため、読み取り呼び出しはブロックされます。
  • 別のスレッドでは、ダウンロード接続のデリゲートで [connection:didReceiveData:] が呼び出されます。
  • 受信したデータを共有バッファーに入れ、アップロード接続の入力ストリームで使用できるようにします。
  • アップロード ストリームの読み取り呼び出しがブロックされなくなり、データのチャンクを返すことができるようになりました。

残念ながら、実際にはこれは機能しません。アップロード ストリームの読み取りメソッドがブロックされた後、ダウンロード接続のデリゲート メソッド (didReceiveData など) は呼び出されなくなります。(アップロード側でブロックを無効にすると、ダウンロード側の didReceiveData が正常に呼び出されることに注意してください。)

これは、アップロード入力ストリームの read メソッドが、接続とストリーム オブジェクトが作成されたスレッドではなく、別のスレッド (明らかに Cocoa によって作成された) で呼び出されるという事実と関係があると思われます。これが両方の NSURLConnections で使用される共有スレッドであるかのように、ブロックされると、他のすべての接続も同様に機能しなくなります。またはそのようなもの。

実際に何が起こっているのか、誰かが考えを持っていますか?

また、リクエストボディ入力ストリームの read メソッドが呼び出されるスレッドを制御する方法はありますか?

0 投票する
1 に答える
432 参照

iphone - 指定された区切り文字で文字列を読み取る NSInputStream ラッパー

Java クライアントを iPhone に移植していますが、指定された区切り文字で停止するストリームから文字列を読み取る NSInputStream の周りにラッパーがあるかどうか疑問に思っていましたか? Javas Scanner クラス (http://download.oracle.com/javase/6/docs/api/index.html?overview-summary.html) のようなものを考えています。

この機能が必要なのは、私の iPhone クライアントがサーバーからメッセージを受信して​​いて、メッセージの終わりが文字 CR と LF によって定義されているからです。

私はグーグルとスタックオーバーフローを検索していましたが、運がありませんでした。いわば車輪の再発明を始めないように頼むだけです。

助けてくれてありがとう!:=)