問題タブ [nsmutablestring]

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 に答える
959 参照

iphone - NSStringsのNSMutableArrayには、実際のデータまたはデータへのポインタのみが含まれています

私はObjectiveCに比較的慣れていないので、iPhoneアプリを書いている間、何かを理解するのに助けが必要だと思います。

文字列の動的リストをメインクラスのプロパティであるNSMutableArrayに格納しています。初期化では、100個のアイテムを格納するために割り当てて初期化します。

文字列が(受信データから)取得されると、それらをオブジェクトとして配列に追加します。

したがって、ここで実際に何が起こっているのかを理解するために。これを5回追加した場合、NSMutableArrayには実際に何がありますか?5つの文字列または実際の文字列へのポインタだけですか?addObjectが実際にデータをコピーしたと思っていました。stringMakerクラスが適切にリリースを開始した場合、何もポインタになってしまう可能性はありますか?私のリストの文字列が解放されたり、他の何かに再ポイントされたりしないようにするためのより良い方法はありますか?それとも、これがどのように機能するかを誤解していますか?

私は現在、この部分に問題はありません。しかし、私はリークと物事のリリースに少し不安を感じています。

これに私を導いたのは、文字列の1つを次のように変更すると問題が発生することです。

しばらくして、そのインデックスのオブジェクトにアクセスするために戻ってきたとき、それはlastStringUsedが最後だったものであり、置き換えたときのものではありません。これは、私が行ったのはポインターを設定しただけで、そのポインターにデータを保存しなかったことを示しています。lastStringUsedはstringMakerクラスのプロパティであり、NSMutableStringであることに注意してください。

明確にするために..stringMakerのさまざまな時点で私は次のことを行っています:

(ちなみに、それは実際にデータを移動しますか?)

次に、メインクラスに戻って、上記のreplaceObjectAtIndexを実行します。次に、他のstringMakerメソッドがlastStringUsedをリセットしています。その後、そのインデックスでstringListにアクセスすると、それは新しいlastStringUsed値であり、replaceObjectAtIndexを実行したときの値ではありません。

編集-今のところ解決済み-まだNSARRAYとストリングのナイトクラスを受講し、適切に保持およびリリースする必要があります

今のところそれを修正するために私がしたことは、新しい文字列を割り当てることでした...

次回lastStringUsedを変更しても、stringList内のものは変更されません。

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

iphone - NSMutableStringを解放するのではなくクリアする

次のループに進むよりも、文字列を取得して何かを実行するかなり大きなループがあります。私はもともとそれをリリースしてから再割り当てしていましたが、それは少しリソースの無駄だと思いましたが、それをクリアして再利用する方法がわかりません。

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

iphone - NSMutableString appendString は SIGABRT を生成します

これは私には意味がありません。たぶん、ここの誰かがこれが起こる理由を説明できるでしょう。

iPhone アプリの先頭に割り当て、プロセスの後半で追加する NSMutableString があります。その結果、SIGABRT が発生しますが、これは私には当てはまりません。コードは次のとおりです。

ヘッダー ファイル (簡略化):

そして、メインの関連部分:

これはすべて簡単に思えます。私は何が欠けていますか?

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

objective-c - NSMutableString で発生する文字列を別の文字列から置き換える方法

単語を 2 回含む NSMutableString があります (例: /abc ...................... /abc)。

ここで、これら 2 つの /abc を /xyz に置き換えます。最初と最後の出現のみを置き換えたいのですが、他の出現はありません。

NSMutableString のこのインスタンス メソッドを見つけましたが、私の場合は使用できません。誰でも解決策はありますか??

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

objective-c - NSMutableString を空白にする方法

ランダムな文字列を含む NSMutableString がある場合、すべての文字を削除して空の文字列にする方法を教えてください。

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

iphone - deleteCharactersInRange の動作がおかしい

こんにちは、みんな!NSMutableString からメッセージ deleteCharactersInRange を使用しています。そして、この関数は間違った方法で範囲を削除するという問題があります。正しく動作しないコードのサンプルを次に示します。

-(void) btnClick { NSRange deleteRange = NSMakeRange(0, 1); [valueStr deleteCharactersInRange:deleteRange]; [自己ShowNumber]; }

変更可能な文字列「-21.256」があり、ボタン btnClick を押すと、最初から「-」を削除する必要がありますが、5回押した後にのみ削除されます。以前はうまくいきましたが、今はうまくいきません。助けてください、またはこの関数の代わりに何を使用できますか? ありがとう!

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

iphone - NSMutableString は常に「範囲外」ですか?

私の.hファイルには次のものがあります:

私の .mi には次のものがあります。

sResults をチェックするたびに、「範囲外」と表示されます。何が間違っていますか?

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

iphone - IPhone の NSXMLParser でのメモリ リーク

以下は私のコードです。Leaks は、NSMutableString alloc メソッドの周りでメモリ リークが発生していると言っています。それは私が単に見落としているだけだと確信しています。誰か考えがあれば教えてください。ありがとう!



-Agent は、クラスの初期化時に作成されたカスタム オブジェクトです。XML は有効で、適切な開始/終了タグがすべて含まれています。

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

objective-c - Objective-C: NSMutableString エラー

このコードでエラーが発生し続けます。変更できないオブジェクトを変更しようとしていることがアプリから通知されます。誰かが見て、私が間違っていることを説明できますか? ありがとう。

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

cocoa - NSMutableString stringWithFormat

MD5 munge のメッセージを準備する Java コードがあります。

'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ':', ' ', 0xa9, ' '};

で使用される

message.append(name.toLowerCase()); message.append(新しい文字列(jimsCopyRight));

を使用してメッセージを印刷すると

System.out.println(" i = " + i + " char " + message.substring(i, i + 1) + " charAT " + message.charAt(i)); }

i = 14 char \251 charAT \251 を取得し、message.toString は jimCopyright: \251 です。

同じ文字で NSMutableString を作成する必要があります。

私が試したことの中で

i = 14 文字 © 169

NSMutableString を StringBuffer と同じにするための助けをいただければ幸いです。


問題は、MD5 で 2 つの文字列を変更すると、0xa9 を追加すると異なる結果が得られることです。プリントは弦を見るためのものです。

Java の char[] と NSMutableString の構造に関係があると思います。私はそれらが同じ価値観であるとは信じていません。

私はいくつかのCコードを持っており、著作権を次のように宣言しています

Java MD5 と C MD5 の著作権は同じです。