問題タブ [objective-c-category]
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.
objective-c - プロトコルとカテゴリ
Objective-Cのプロトコルとカテゴリの違いを説明できる人はいますか? いつどちらを使用しますか?
ios - すべてのUIImageViewに丸みを帯びた角を追加します
プロジェクト内のすべてのUIImageViewに丸みを帯びた角を追加したいと思います。私はすでにコードを機能させていますが、それをすべての画像に適用する必要があります。これを追加するには、UIImageViewをサブクラス化する必要がありますか?もしそうなら、誰かが私にこれを行う方法についていくつかの指針を与えることができますか?
これがコードです
iphone - 「余分な」実装をどこに置くか?
ときどき、オブジェクトの新しいメソッドを作成するコードのスニペットなどを次のように見ます。
このコードはどこに置くのですか? 現在コードを書いているクラスに入れますか? もしそうなら、コードのどの時点でこれを配置する必要がありますか?
ありがとうございました。
iphone - UIViewカテゴリで警告が発生するのはなぜですか?
いくつかの遷移ヘルパーメソッドを保持するために、UIViewにカテゴリを追加しました。メソッドはすべて機能しています。ただし、コンパイラの警告が表示されます。
警告:「UIButton」は「-fadeOutWithDuration:」に応答しない可能性があります
私の「UIView+Trans.h」ファイルは次のようになります。
私の「UIView+Trans.m」ファイルは次のようになります。
そして、私は次のようなメソッドを呼び出しています:(そして、categoryメソッドを使用する各ファイルの上部に#import "UIView + Trans.h"があります。)また、UIButton*をUIView*にキャストしようとしました。
このCategoriesExampleの記事の「NSString+Reverse」の例を同じプロジェクトで使用しましたが、厄介な警告はありませんでした。
objective-c - カテゴリを使用してiTunesApplicationクラスを拡張する
ScriptingBridgesの使い方を学んでいます。iTunesで音量をゆっくりと下げる方法を作成しました。これをカテゴリにして、次のことができるようにします。
動作するNSSpeechSynthesizerの別のカテゴリを作成しましたが、これを取得できません。次のビルドエラーが発生し続けます。
シンボルを含めることができないので、それを機能させるために何か特別なことができますか?
ありがとう、
ライアン・ペンドルトン
更新: 私は以下の1つの解決策しか見つけませんでした。それはMethodSwizzlingを含むので、私はより良い答えを受け入れることができますが、今のところ私が持っているのはそれだけです。
objective-c - Objective-Cカテゴリの質問
クラスの新しいカテゴリを作成して、カスタムの並べ替えを作成しましたNSString
。以下は私のコードです。
私の質問は、plistに基づいてアルファベットの各文字に関連付けられたポイント値を決定するためにポイントディクショナリを作成するかどうかです。次に、View Controllerで、
単語のテーブルをポイント値で並べ替えます。ただし、メソッドが呼び出されるたびに新しいディクショナリを作成することは、-sortByPoint:
非常に非効率的です。事前にpointDictionaryを作成し、それを以降の呼び出しごとに使用する方法はあり-calculateWordValue:
ますか?
ios - カテゴリでメソッドを上書きするときに元の実装を呼び出す方法は?
私は物事が実際にどのように機能するかを理解しようとしています。そのため、カテゴリを使用して特定のメソッドを上書きすると、興味深いNSLogが得られると思いました。
スーパーとセルフはここでは機能しません。-hitTest:withEvent:の元の実装を呼び出す方法はありますか?UIViewで-hitTest:withEvent:が呼び出されるたびにNSLogが必要です。
それは個人的な学習目的のためだけです。イベント配信の様子を見たいです。
objective-c - オーバーライドされたクラスメソッドでスーパーを呼び出す
次のようなカテゴリを使用UIButtonType
して、クラスに新しいカスタムを追加したいと思います。UIButton
super
どういうわけか、そのオーバーライドされたメソッドの実装を取得することは可能ですか?
上記のコードは、このコンテキストでsuper
参照しているため、無効です。UIControl
objective-c - カテゴリで宣言されたプロパティをリリースするObjective-C?
クラスにプロパティといくつかのメソッドを追加する既存のクラスにカテゴリがあります。
実装ファイルでは、オブジェクトの割り当てが解除されたときにこのプロパティを解放したいと考えています。ただし、dealloc
このクラスで宣言すると、元のクラスの dealloc がオーバーライドされます。aProperty
オブジェクトの割り当てが解除されたときにこれを解放する適切な方法は何ですか?
objective-c - メソッドがまだ存在しない場合にのみロードされるObjective-Cカテゴリを持つことは可能ですか?
過去のプロジェクト(iOS 4.0より前)では、次のカテゴリメソッドを次のように記述しましたNSSortDescriptor
。
AppleがiOSSDK4.0をリリースしたとき、それはまったく同じ方法を含んでいました(おそらくまったく同じことをします)。特定のOSバージョンを実行している場合、または同じシグネチャで宣言されたメソッドがまだない場合は、おそらくそれ以上にランタイムに追加されるカテゴリを作成することは可能ですか?
この場合、sortDescriptorWithKey:ascending:
私のバージョンはほぼ確実に同じことを行うので、メソッドをカテゴリでオーバーライドするのがおそらく安全です。これにより、iOS3とiOS4の両方がサポートされます。エッジケースで物事を壊す可能性があるため、可能であればシステム定義のメソッドをいじりたくないです。