問題タブ [nsfilehandle]

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 投票する
3 に答える
1112 参照

objective-c - NSTask はリリース ビルドで standardError のみを返す

まず第一に、Xcode でデバッグおよび実行すると、すべてが期待どおりに機能します。

しかし、アプリを「共有」しようとすると、つまりリリース ビルドを作成すると、standardErrors が出力されている間、NSTask は standardOutput を出力しません。そんなことがあるものか?

私のコード

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

objective-c - ObjectiveCFileHandleのfileHandleWithStandardOutput

FileHandleクラスにはfileHandleWithStandardOutputメソッドがあります。ドキュメントによると、「従来、これはプログラムからデータのストリームを受信する端末デバイスです。」

私がやりたいのは、128バイトごとにファイルを読み取り、fileHandleWithStandardOutputメソッドを使用して端末に表示することです。

これは、128バイトごとにどのように読み取っているのかを示すコードフラグメントです。

kBufSizeは、128に等しいプリプロセッサです。


私の答え:

outFileをfileHandleWithStandardOutput..の戻りNSFileHandleに設定します。

以前に試しましたが、うまくいきませんでした。そして今はうまくいきました。他に何かがあるか、何かが干渉している可能性があります。とにかく私は今答えを得ました。

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

objective-c - NSFileHandle&iOSのファイルへの非同期の書き込み

Webサービスリクエストを介してバイトデータを受信し、それをiOSデバイス上のファイルに書き込みたいという状況があります。以前は、すべてのデータ(データの最後まで)をメモリ変数に追加し、最後にNSStream次の方法を使用してiOSデバイスのファイルにデータを書き込みていました。

小さなサイズのデータ​​では問題なく動作しますが、問題は、Webサービスを介してデータを受信して​​いる場合、それが大きなチャンク(数MB)になる可能性があり、ファイルに書き込むためにすべてをメモリに収集したくないことです。効率的にNSFileHandleする小さなチャンクサイズのデータ​​を同じファイルに数回書き込むように切り替える必要があると思います。今私の質問は、これを行うための最良のアプローチは何ですか?つまり、バックグラウンドでファイルに書き込むにはどうすればよいNSFileHandleですか?私は次のようなコードを使用します:

}

しかし、1〜2 Mbのデータサイズを上記のメソッドに渡す場合、バックグラウンドで実行する必要がありますか?参考までに、私はメインスレッドで書いています。

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

java - NSTaskは、NSFileHandleではなくコンソールに出力をパイプします

のNSNotificationを設定しましたNSFileHandleReadCompletionNotification

2本の別々のパイプで標準I/Oをセットアップしました。

Java jarを実行するNSTaskを起動し、データの読み取りを開始します。

[[serverTask.standardOutput fileHandleForReading] readInBackgroundAndNotify];

そして、私は継続的にデータを読み取り、NSTextViewそれが新しいデータである場合はデータを追加します。

しかし、私は奇妙な出力を取得していますNSTextView

ここに画像の説明を入力してください

これらの「>」文字は実際の出力の行である必要がありますが、代わりに出力はXcodeのコンソールに表示されます。

言い換えると、コンソールは、出力NSPipeの新しい行の表示のみを出力するmyではなく、出力を出力します。

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

objective-c - Objective C/iPhone で実行中に変更されたファイルを読み取れない

ファイルを読み取って、アプリのファイルの内容を変更しようとしています。ここにviewWillAppearメソッドの私のコード:

ここに myfile.txt の内容があります:

ここでは、ビューが表示された後の nslog の結果:

しかし、問題は、myfile.txt の内容を変更したときです (アプリは引き続き実行されます)。

結果は実際の myfile.txt コンテンツに変化せず、代わりに古いコンテンツが表示されます。

したがって、シナリオは、ビューをプッシュし (その後、viewWillAppear が実行されます)、結果が表示され、別のビューに移動し、myfile.txt の内容を変更し、最初のビューに戻り (viewWillAppear を再度実行するため)、結果は変わりません。

誰でも myfile.txt の実際の内容を取得するための回避策を教えてもらえますか? ありがとう。

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

iphone - ファイル iOS のデータ (バイト) の変更

約 700MB の巨大な暗号化ファイル (mp4) があります。ファイルのヘッダーは(1MB+ダミーバイト)程度暗号化されています。このファイルの復号化は正常に完了しました。

今、ファイル(同じファイル)内の(1MB +ダミー)暗号化されたバイトを削除し、それらを復号化されたバイトに置き換えたいと思います。

どうすれば同じことを達成できますか? この点で何か助けていただければ幸いです。前もって感謝します。

[encVideoFile closeFile];

私がここで直面している問題は、私が (1MB+ DummyBytes) 暗号化しており、1MB+ DummyBytes を復号化すると、約 0.9MB (復号化されたバイト) になることです。

それでも私の問題は解決しません(0.9MB+不要なバイト+暗号化されていないバイト)。

克服方法の提案は役に立ちます。

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

iphone - 「readInBackgroundAndNotify」はレシーバーの保持数を増やします

NSFileHandleソケットからデータを読み取るために使用しています。これが私が作成している方法ですfilehandle

filehandle = [[NSFileHandle alloc] initWithFileDescriptor:sock closeOnDealloc:YES];

私はこれをやっています:

readInBackgroundAndNotifyが1ずつ増加していることに気付きretainCountましfileHandleた。したがって、filehandleデータの読み取りが完了したらこれを解放しても、メモリは解放されません。そのため、無効なデータを読み取ろうとしてアプリがクラッシュします。この問題はiOS4.3で発生していますが、iOS5では発生していないことに注意してください。をリリースする前にオブザーバーを削除していfilehandleます。ファイルハンドルオブジェクトを解放する前に他にすべきことはありますか?

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

ios - ファイルサイズについて調べてみました。しかし、私の長さはゼロに等しい

ファイルサイズについて調べてみました。

しかし、私の長さはゼロに等しいです。なんで?

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

ios - [NSConcreteFileHandle writeData:]: 不正なファイル記述子 - 起動時にアプリがクラッシュする

私は GTMLogger を使用しており、 iOS5.1 に移行してからクラッシュしているように見える次のコードがあります。奇妙なことは再現できないようですが、多くのユーザーに起こっていることは知っているので、追跡する方法がわかりません.

[NSConcreteFileHandle writeData:]: Bad file descriptor

試してキャッチすることはできますが、回避策ほどの解決策ではありません。

これは疑わしい部分です:

誰もそのようなものを得たことがありますか?

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

cocoa - NSFileHandle とバイトのセクションの削除

ファイルの一部のバイトを削除する明らかな方法はないと思うので、少し驚いています。

つまり、900 GB を保持するファイルがあり、オフセット 54 から始まる 8 バイトを削除したいとします。

データをメモリに渡さずにそれを行う方法はありますか?

ありがとうございました!