問題タブ [foundation]

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

objective-c - stringWithFormat: with unknown datatype

I am making a framework and I have this code (conditions is an NSDictionary):

If the value is an NSString, quotes should be added, otherwise codes should not be added. However, if not an NSString, I don't know the datatype of value, as it could be NSNumber, NSInteger, int, float, double, etc... I can't just use %@ or %d but I'm sure someone on SO knows how to do this? Thanks.

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

objective-c - 直後に自動リリースが続く保持のポイントは何ですか?

私はいくつかのオープンソースコードを見て、作者が特定の方法で何かをした理由を理解しようとしています。

このクラスは、NSArraypush、popなどのスタックデータ構造を作成するためのラッパーです。

1つのメソッドはtopObject、スタックの最上位のオブジェクトを返す方法であり、その実装は次のとおりです。

保持とそれに続く即時自動リリースとは何ですか?

私の最初の反応は、これによりアナライザーがメモリリークについて警告するのを防ぐことができるというものでしたが、保持/自動解放なしで分析しましたが、それでも警告はありませんでした。

ライフサイクルを見ると、オブジェクトが作成され、スタックにプッシュされて解放されるため、スタックがオブジェクトを所有します(基になる配列は追加時にオブジェクトを保持します)。

だから私はここで保持/自動解放の使用法を理解していません...

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

objective-c - NSData を NSString に変換し、null バイトを無視しますか?

NSData オブジェクトを NSString に変換する必要があります。意味不明なことを意図していますが、デバッグに必要です。

NSString の initWithData を使用すると、データに NULL バイトがあるため壊れます。nullバイトを無視して適切な文字列を取得するにはどうすればよいですか?

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

objective-c - NSMutableSet addObject

オブジェクトをラップするクラスがあり、(メソッドを使用して)NSMutableSetオブジェクトをに追加するインスタンスメソッドがあります。addObject:NSMutableSet

これはうまく機能containsObject:しますが、オブジェクトをセットに追加する前にメソッド内で明示的に呼び出しているため、パフォーマンスの問題が発生しています。

3部構成の質問:

  1. containsObject:セットにオブジェクトを追加する前に呼び出す必要がありますか?
  2. もしそうなら、私は実際にどのような方法を使うべきですか、containsObjectそれともcontainsObjectIdenticalTo:
  3. そうでない場合、どのcontainsメソッドが内部で呼び出されaddObject:ますか?これは私にとって重要です。オブジェクトを渡すcontainsObject:とtrueが返されますが、渡すとcontainsObjectIdenticalTo:falseが返されるからです。
0 投票する
2 に答える
789 参照

objective-c - 自動リリースを使用する場合、実際にリリースされるのはいつですか。

時々、何かが自動リリースされるのだろうかと思います。さまざまなオブジェクトのdeallocにNSLogを追加しましたが、有用なものが見つかりませんでした。

自動リリースを使用すると、いつ何かがリリースされますか?予測できないのでしょうか、それとも余分なスレッドが実行されているのでしょうか。ありがとう。

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

ios - HTML を iOS の NSAttributedString にマップする方法

NSAttributedString initWithHTML addtion は Mac OS でのみ利用でき、iOS では利用できないためです。

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

objective-c - クラッシュするはずのSimpleObjective-Cのオーバーリリースはクラッシュしません。なんで?

私のデバッガーが壊れているか、私が理解していない根本的な何かがあります。

クラッシュするはずの非常に基本的なコマンドラインプログラムにいくつかの非常に基本的なコードがあります。ただし、クラッシュしていません。

logステートメントは、有効な文字列に期待されるように「長さ:5」を出力します。ただし、その時点で文字列の割り当てが解除され、exec_bad_accessエラーがスローされる必要があります。

デバッガーを接続した状態とデバッガーを接続しない状態でこのコードを試しましたが、どちらも同じ結果になります。また、有効(および無効)NSZombieにしましたが、効果がないようです(NSZombieオブジェクトの割り当てが解除されることはないため、最初はこれが問題だと思っていましたが、無効にしてもクラッシュしませんNSZombie)。

ローカル.gdbinitファイルにブレークポイントを設定して、-[NSException raise]やなどのブレークポイントを設定していますobjc_exception_throwNSZombieまた、それらをキャッチするために、多くのメソッドにブレークポイントを設定しています。

これらのブレークポイントが設定され、NSZombieが有効になっ[NSString length]: message sent to deallocated instance 0x100010d39ていると、コンソールに出力されるようなものが表示されるはずですが、これは表示されません。NSLog印刷の長さは5と表示されます。

NSURLやなどの他のクラスでも同様の動作が見られNSNumberます。NSErrorただし、やなど、一部のクラスは期待どおりにクラッシュしNSObjectます。

これはクラスクラスターと関係がありますか?それらはメモリ管理に関して同じ規則に従わないのですか?

クラスクラスターがこの問題に関連していない場合、私が見ることができる他の唯一の一般的な機能は、この方法でクラッシュしないクラスはすべて、CoreFoundationの対応するクラスと無料でブリッジされることでした。これはそれと関係がありますか?

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

iphone - iPhone でチャンクされた http リクエストを実装するにはどうすればよいですか?

現在、私は NSMutableURLRequest を使用しようとしており、HTTPBody を、このチャンクを提供するカスタム作成の NSInputStream に設定しています。

NSMutableURLRequest が NSInputStream クラスにますます多くのメソッドを実装するように要求し続けるという事実がなければ、これは問題ありません。最初に実装するように求められました - streamStatus: 実装はかなり簡単でしたが、今では _scheduleInCFRunLoop:forMode:... を要求しています...

基本的に、私はアルゴリズムからデータを生成しており、チャンクされたリクエストを介してサーバーに送信したいと考えています。

コードは次のとおりです。

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

objective-c - 同じオブジェクトを2つの異なる配列に追加できますか?

これは有効ですか:

同じオブジェクトへの参照を追加しているだけなので、私のお金はありますか、それともここで間違っていますか?

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

iphone - NSOperationQueueでKVOを使用するときに、辞書の値を間違って変更しますか?

「iPhone3のその他の開発」の同時実行の章で例を試していましたが、KVONSOperationQueueを期待どおりに動作させることができません。を作成し、以下を使用してその配列をNSOperationQueue観察します。operations

最初NSOperationのものがキューに追加されると、その基になるoperations配列(iOSのドキュメントではKVOに準拠していると記載されています)に追加されると思います。したがって、変更ディクショナリで、からのマッピングと、NSKeyValueChangeKindKeyからのマッピングを検索します。追加されたに。しかし、私はどんな種類の価値も見ていませんでした。NSKeyValueChangeInsertionNSKeyValueChangeNewKeyNSOperationNSKeyValueChangeInsertion

デバッガーがプロであり、すべてであることは知っていますが、ここにコピーするのに役立つものを用意するために、オブザーバーメソッドを次のように開始しました。

そしてそれは印刷します:

(これは単に適切にオーバーライドするSquareRootOperation私のサブクラスであり、単にプロジェクト名です。)ただし、メソッドは1つの操作を挿入すると2回呼び出され、両方とも種類の値が1であることに注意してください。さらに、追加されたアイテムではなく、配列自体のようです。NSOperationmainStalledNSKeyValueChangeSettingNSKeyValueChangeInsertionnewValueoldValue

何か案は?ありがとう!