問題タブ [nsdata]

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

objective-c - NSString sha1 関数を書き込もうとしていますが、null を返しています

次のObjective-C関数があります:

私がやろうとしているのは、NSString を取得し、SHA1 でエンコードすることです。その部分は機能しているようです。私が倒れているのは、NSData オブジェクトを読みやすい文字列に変換する方法にあると思います。UTF8 エンコーディングを使用すると空白になり、ASCII と言うと奇妙な文字が表示されます。私が本当に欲しいのは16進文字列ですが、それを取得する方法がわかりません。これは iPhone 3.0 SDK を使用しています。

現時点では、渡した文字列はすべてNULLに戻ります。

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

iphone - NSData を使用したメモリの問題

これは私のコードであり、メモリを解放せず、60 mb に達し、アプリケーションが強制終了します

for (int i=0; i<[modelList カウント] ;i++) {

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

objective-c - ココア64ビットバイナリはメモリリークしますか? (NSData を解放してもメモリは解放されません)

私は自分のアプリケーションのさまざまなビルドでしばらく遊んでいますが、奇妙なことが起こるようです:

私のアプリには 5 MB のアイドル フットプリントがあります。ファイルをアップロードするとき、ファイルのサイズのメモリが予約されます。アップロード後、予約済みメモリを解放する必要があります。現在、ビルドに違いがあります (gc = ガベージ コレクター):

  • 32bit i386 no-GC: すべてのメモリが即座に解放されます。
  • 32 ビット i386 GC: ほとんどすべてのメモリが即座に解放されます。残りはしばらくしてから。
  • 64bit x86_64 no-GC: 最小限のメモリが解放されます。10%くらい
  • 64 ビット x86_64 GC: メモリはまったく解放されません。メモリは何時間も予約されたままになります。(活動月)

私はCLANGでLLVMを使用しています。私は今日ずっと楽器を走らせていて、リーク/ゾンビ/などをチェックしていました。すべてがきれいに見えます。(アプリはかなりシンプルです。)

この動作の説明はありますか?


アップデート:

それはいくつかの奇妙なものです。私はこれに問題を沸騰させました:

20MB のファイルを NSData にロードして解放します。ガベージコレクションを有効にせずにこれを行っています。コードは次のとおりです。

i386 32 ビット用にビルドすると、20 MB が割り当てられて解放されます。ビルドを 64 ビット x86_64 に切り替えると、リリースは何もしません。20MBは割り当てられたままです。

上の写真 32bit 下の写真 64 http://kttns.org/zguxn

上のアプリが 32 ビット用にビルドされ、下のアプリが 64 ビット用にビルドされていることを除いて、2 つのアプリに違いはありません。GC は実行されていません。(GC を有効にすると、同じ問題が発生します。)


更新 2:

applicationDidFinishLaunching: の上位コードのみを使用して新しいココア アプリをゼロから作成すると、同じ動作が観察されます。64 ビット モードでは、メモリは解放されません。i386 は期待どおりに動作します。

NSData ではなく NSString でも同じ問題が発生します。64 ビット カーネルを起動したときにも表示されます。(起動時は64保持)

OS は 10.6.0

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

iphone - NSData から NSString への変換の問題!

NSData として html ファイルを取得しており、それを解析して情報を抽出する必要があります。私のアプローチは、それをUTF8エンコーディングでNSStringに変換することでした(htmlには英語以外の文字、たとえばロシア語が含まれています)-失敗しました。私はそのようなものを使用しました:

しかし、それは nil を返しました。

実際に機能した唯一のことは

ただし、たとえばロシア語の文字に遭遇すると、ジブリッシュが返されます。

それから私の次のアプローチは、データのバイト配列を解析し、必要なバイトを抽出し、何らかの方法でそれらを NSString に変換することでした。私はそのようなことを試しました:

0 投票する
4 に答える
7503 参照

iphone - NSDataからNStringへの変換の問題

HTMLファイルをNSDataとして取得しており、その一部を抽出する必要があります。そのためには、UTF8エンコーディングを使用してNSStringに変換する必要があります。問題は、おそらくNSDataにUTF8に対して無効なバイトが含まれているために、この変換が失敗することです。データのバイト配列を取得して調べようとしましたが、ASCII以外の文字(ヘブライ文字など)に出くわすたびにジブリッシュになります。

ヘルプをいただければ幸いです。

アップデート:

ゴードンへ-次のように生成されたNSData:

私が変換が失敗すると言うとき、私はそれを意味します

nilを返します

エドへ-これが私のコードです(NSDataからバイト配列を取得し、必要なものを見つけて、そこから別のバイト配列を構築しました-それをNSDataに変換し、NSStringに変換しようとしました...ちょっと複雑に聞こえます... )。

}

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

iphone - Objective-C でディスクからファイルの一部のみを読み取る

NSInputStream を使用して非常に大きなファイルを読み取り、それらをパケットでデバイスに送信しています。受信者がパケットを受信しない場合は、送信者にパケット番号を付けて送り返すことができます。これは、欠落しているパケットの開始位置をバイト単位で表したものです。

NSInputStream がパケットを巻き戻して取得できないことはわかっていますが、大きなファイル全体をメモリにロードせずに、要求されたバイト範囲を取得する別の方法はありますか?

[NSData dataWithContentsOfFileAtPath:inRange] メソッドがあれば完璧です。

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

iphone - iPhone - nsdata を解析してそこに保存されている複数のファイルを取得する

解析中の nsdata オブジェクト内にある新しい行と戻り値を見つけようとしています。ここにいくつかのコードがあります:

いつ改行するか戻るかを知る必要があるだけです。

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

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

iphone - NSData から UiImage を作成する

以下は、元のコードがコンパイルされないため、(このサイトから) コピーし、わずかに変更したコードです。エッジ検出のためにバイト配列を操作し、最終的には色を簡単に変更したいと考えていますが、最初に基本的なコードを機能させたいと考えていました。現在、システムはコンパイルおよび実行されます。画面に下手な象が表示されます。画像をタッチすると消えます。ステップスルーすると、imageWithData の結果が 0x0 として表示されます。私はpngとbmpの両方でこれを試しましたが、同じ結果でした

私が間違っていることの手がかりはありますか?!

ImageViewDrawable は次のように定義されます。

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

iphone - 暗号化されたNSDataをobj-cのNSStringに?

入力されたNSStringをCCCrypt(AES256)とプレーンテキストキーを使用して暗号化するiPhoneアプリがあります。文字列とキーは、NSDataオブジェクトを返す暗号化メソッドに渡されます。

[データの説明]をリクエストすると、「data」は暗号化された文字列データで、「<0b368353 a707e7de 3eee5992 ee69827e e3603dc2 b0dbbc0b 861ca87d f39ce72a>」のようなNSStringが得られますが、これをNSStringに変換しようとすると、「(null)」になります。

NSStringをユーザーに返す必要があります。これは、同じプレーンテキストキーを使用して元の文字列に復号化するために使用できます。NSDataオブジェクトの'description'プロパティが文字列を返すことができる場合、 "(null)"を取得せずにNSDataオブジェクトからNSStringを生成する方法はありますか?

更新:混乱した文字列を生成するためにBase64エンコーディングを使用することを提案してくれたQuinnに感謝します。私が理解していることから、Base64エンコーディングは単に文字を交換するのではなく、文字交換は位置に依存するので、それで問題ありません。

私の唯一の懸念は、メッセージを「パスフレーズ」で暗号化し、混乱した文字列をデコードする必要があるときに同じパスフレーズを入力する必要があることです-これを実装する方法を誰かが提案できますか?

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

iphone - NSData&NSURL-スペースに問題のあるURL

アプリケーションに次のコードがあります。

pathOfThumbNailには次のパスがあります


http://70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg


サファリブラウザで上記のパスを開くと、パスが自動的に変更され、画像が正常に表示されます。

http://70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg


ただし、iPhoneでは、パスにスペースがあるため、画像がnsdataに読み込まれません。