問題タブ [objective-c]

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

objective-c - 文字列を double に、またはその逆に変換する方法は?

文字列を double に変換し、いくつかの計算を行った後、文字列に変換したいと考えています。

Objective-Cでこれを行うにはどうすればよいですか?

double を最も近い整数に丸める方法はありますか?

0 投票する
8 に答える
8055 参照

objective-c - Objective-C の整理整頓

私はやや乱雑にフォーマットされたObjective-Cコードベースを持っています。コーディング標準に準拠するように Xcode でプロジェクト全体を再フォーマットする方法はありますか (つまり、適切なインデント、スペースとタブなど)。これを達成できる他のツールはありますか?

0 投票する
9 に答える
10866 参照

objective-c - Cocoa でのメモリ リークの回避、発見、削除

メモリ (およびリソース) リークが発生します。彼らがそうしないことをどのように確認しますか?

そもそもメモリリークの発生を避けるために、どのようなヒントとテクニックを提案しますか?

リークしているアプリケーションを入手したら、リークの原因をどのように突き止めますか?

(ああ、「GCを使用するだけ」の回答は避けてください。iPhoneがGCをサポートするまで、これは有効な回答ではありません。それでも、GCでリソースとメモリをリークする可能性があります)

0 投票する
12 に答える
183170 参照

objective-c - Objective-C でクラスのプライベート メソッドを定義する最良の方法

私は Objective-C のプログラミングを始めたばかりで、Java のバックグラウンドを持っているため、Objective-C プログラムを作成している人々がプライベート メソッドをどのように扱っているのか疑問に思っています。

いくつかの規則や習慣が存在する可能性があることを理解しており、この質問は、Objective-C でプライベート メソッドを処理するために人々が使用する最良の手法の集合体として考えています。

投稿するときは、アプローチの引数を含めてください。なぜそれが良いのですか?それにはどのような欠点があり (あなたが知っている)、どのように対処しますか?


これまでの私の調査結果について。

MyClass.m ファイルで定義されたカテゴリ[例: MyClass (Private)]を使用して、プライベート メソッドをグループ化することができます。

このアプローチには 2 つの問題があります。

  1. Xcode (およびコンパイラ?) は、対応する @implementation ブロックでプライベート カテゴリのすべてのメソッドを定義しているかどうかをチェックしません。
  2. プライベート カテゴリを宣言する @interface を MyClass.m ファイルの先頭に配置する必要があります。そうしないと、Xcode が「self may not response to message "privateFoo".

最初の問題は、空のカテゴリ[eg MyClass ()] で回避できます。
2つ目はとても気になります。ファイルの末尾近くにプライベート メソッドが実装 (および定義) されていることを確認したいと思います。それが可能かどうかはわかりません。

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

objective-c - Objective-C はネイティブ コードまたはバイトコードにコンパイルされますか?

OS X では、Objective-C はネイティブ コードまたはバイトコードにコンパイルされますか?

Objective-C プログラムは Linux でコンパイルできますか?

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

objective-c - ユーザーが Cocoa を使用して 24 時間制を使用しているかどうかを確認する方法

ユーザーが 24 時間または 12 時間のどちらを使用しているかを判断しようとしていますが、NSDateFormatter を作成して期間フィールドのフォーマット文字列を検索する以外に、これを把握する良い方法はないようです ('a ' キャラクター)

これが私が今していることです:

これは機能しますが、ちょっと壊れやすいと感じます。もっと良い方法があるはずですよね?

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

iphone - UIImageのInterfaceBuliderに参照アウトレットを接続するにはどうすればよいですか?

プログラムでUIImageにアクセスしたい...つまりmyImage.hidden=TRUE; など。UILabelに対してはこれで問題なく実行できますが、UIImageに対してプロセスを繰り返すと、機能しません。具体的には、Interface Builderで青い線をアイコンの上にドラッグすると、UILabelを使用しているときのようにポップアップメニューが表示されません。

おそらくUIImageの代わりにUIImageViewを使用していますか?

ありがとう!

0 投票する
13 に答える
41921 参照

objective-c - Objective-C の名前空間の競合を解決する最善の方法は何ですか?

Objective-C には名前空間がありません。C によく似ており、すべてが 1 つのグローバル名前空間内にあります。一般的な慣行は、クラスに頭文字を付けることです。たとえば、IBM で働いている場合は、頭に「IBM」を付けることができます。Microsoft で働いている場合は、「MS」を使用できます。等々。イニシャルがプロジェクトを指す場合もあります。たとえば、Adium はクラスの前に「AI」を付けます (その背後にイニシャルを使用できる会社がないため)。Apple はクラスに NS という接頭辞を付け、この接頭辞は Apple 専用に予約されていると述べています。

ここまでは順調。しかし、クラス名の先頭に 2 ~ 4 文字を追加することは、非常に限られた名前空間です。たとえば、MS または AI はまったく異なる意味を持つ可能性があり (たとえば、AI は人工知能である可能性があります)、他の開発者がそれらを使用して同じ名前のクラスを作成することを決定する場合があります。Bang、名前空間の衝突。

これが自分のクラスの 1 つと、使用している外部フレームワークの 1 つとの間の衝突である場合は、クラスの名前を簡単に変更できます。大したことではありません。しかし、2 つの外部フレームワークを使用していて、どちらのフレームワークもソースがなく、変更できない場合はどうなるでしょうか? アプリケーションがそれらの両方とリンクすると、名前の競合が発生します。これらを解決するにはどうすればよいでしょうか?両方のクラスを引き続き使用できるように、それらを回避する最善の方法は何ですか?

C では、ライブラリに直接リンクしないことでこれらを回避できます。代わりに、dlopen() を使用して実行時にライブラリをロードし、dlsym() を使用して探しているシンボルを見つけ、それをグローバル シンボルに割り当てます (任意の方法で名前を付けることができます)、このグローバル シンボルを介してアクセスします。たとえば、一部の C ライブラリに open() という名前の関数があるために競合が発生した場合、myOpen という名前の変数を定義して、ライブラリの open() 関数を指すようにすることができます。 、open() を使用するだけで、もう一方を使用する場合は、myOpen 識別子を介してアクセスします。

Objective-Cで同様のことが可能ですか?そうでない場合、名前空間の競合を解決するために使用できる巧妙でトリッキーなソリューションは他にありますか? 何か案は?


アップデート:

これを明確にするために、名前空間の衝突を事前に回避する方法や、より良い名前空間を作成する方法を提案する回答は大歓迎です。ただし、私の問題を解決しないため、回答として受け入れません。2 つのライブラリがあり、それらのクラス名が衝突しています。それらを変更することはできません。どちらのソースも持っていません。衝突はすでに発生しており、事前に回避できた方法に関するヒントはもはや役に立ちません。それらをこれらのフレームワークの開発者に転送し、彼らが将来より良い名前空間を選択することを願っていますが、当分の間、単一のアプリケーション内で現在フレームワークを操作するソリューションを探しています. これを可能にする解決策はありますか?

0 投票する
5 に答える
19911 参照

objective-c - NSMutableArrayの破棄

NSMutableArray幸せなオブジェクトの配列があります。これらのオブジェクトは、すべてのオブジェクトの配列をクリアして再入力しようとするたびに、悪意を持ってオン(リーク)します。

このようにinit関数に割り当てられます

私がそれをクリアするために使用したさまざまな方法は次のとおりです。

アレイを明示的に割り当てたり解放したりすることもできません。リークは、リストをリセットしようとしたときにのみ発生します。

リセットするときにステップが欠落していますか、それともこれは別の問題ですか?

0 投票する
23 に答える
68119 参照

c - Objective-C を学ぶ前に、まず C を学ぶ

意欲的な Apple 開発者として、Objective-C に移行し、最終的には Cocoa Framework に移行する前に、まず C を学習した方がよいかどうか、コミュニティの意見を聞きたいと思います。

私の直感は、C を学べば良い基礎ができると言っています。