タグ付けされた質問 「selector」

セレクターは、Objective-CまたはSmalltalkプログラミング言語のメソッド名を識別する文字列、または複数の回線(I / O)を単一の回線に接続するためにコンピューターで使用される特殊な種類のスイッチにすることができます。このタグをjQuery / CSSセレクターに使用しないでください。

23
Swiftの@selector()?
私が作成しようとしているNSTimer中をSwift、私はいくつかの問題を抱えています。 NSTimer(timeInterval: 1, target: self, selector: test(), userInfo: nil, repeats: true) test() 同じクラスの関数です。 エディターでエラーが発生します。 指定された引数を受け入れる 'init'のオーバーロードが見つかりませんでした 変更selector: test()するselector: nilとエラーが消えます。 私はもう試した: selector: test() selector: test selector: Selector(test()) しかし、何も機能せず、参照で解決策を見つけることができません。
660 swift  selector  nstimer 

16
SwiftのrespondsToSelectorに相当するものは何ですか?
私はググってみましたが、相当するものを素早く見つけることができませんでしたrespondsToSelector:。 これは私が見つけることができる唯一のものです(respondsToSelectorのSwift代替:)が、デリゲートの存在を確認するため、私の場合はあまり関連性がありません。新しいAPIが存在するかどうかを確認するだけのデリゲートはありません。デバイスで実行している場合、または以前のバージョンのAPIにフォールバックしない場合。

12
「宣言されていないセレクター」の警告を取り除く方法
実装されたプロトコルを必要とせずに、NSObjectインスタンスでセレクターを使用したい。たとえば、呼び出されたNSObjectインスタンスがエラープロパティをサポートしている場合にエラープロパティを設定するカテゴリメソッドがあります。これはコードであり、コードは意図したとおりに機能します。 if ([self respondsToSelector:@selector(setError:)]) { [self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]]; } ただし、コンパイラはsetError:シグネチャの周りにメソッドを検出しないため、@selector(setError:)スニペットを含む各行に対して警告を表示します。 Undeclared selector 'setError:' この警告を取り除くためにプロトコルを宣言する必要はありません。これを使用して特別なものを実装するすべてのクラスが必要になるわけではないためです。慣例として、私は彼らにsetError:メソッドまたはプロパティを持たせたいと思っています。 これは可能ですか?どうやって? 乾杯、 EP

30
Objective-Cの「インスタンスに認識されないセレクターが送信されました」エラー
ボタンを作成してアクションを追加しましたが、ボタンが呼び出されるとすぐに次のエラーが発生しました。 -[NSCFDictionary numberButtonClick:]: unrecognized selector sent to instance 0x3d03ac0 2010-03-16 22:23:58.811 Money[8056:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:'*** -[NSCFDictionary numberButtonClick:]: unrecognized selector sent to instance 0x3d03ac0' これは私のコードです: - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { UIButton *numberButton = [UIButton buttonWithType:UIButtonTypeCustom]; numberButton.frame = …

7
Objective-C:複数の引数を持つセレクターの呼び出し
MyClass.mで、私は定義しました - (void) myTest: (NSString *) withAString{ NSLog(@"hi, %@", withAString); } MyClass.hの適切な宣言。後で電話したい [self performSelector:@selector(mytest:withAString:) withObject: mystring]; MyClass.mでエラーが発生しますが、 *キャッチされない例外 'NSInvalidArgumentException'によりアプリを終了しています。理由: '* -[MyClass myTest:withAtring:]:認識されないセレクターがインスタンス0xe421f0に送信されました' 文字列をコンソールに出力する引数をとらず、うまく機能するセレクターを使用して、より簡単なケースを試しました。コードの何が問題になっていて、どうすれば修正できますか?ありがとう。

8
Objective-Cのセレクター?
最初に、セレクターが何であるかを本当に理解しているのかわかりません。私の理解では、これはメソッドの名前であり、タイプ「SEL」のクラスに割り当ててから、respondToSelectorなどのメソッドを実行して、レシーバーがそのメソッドを実装しているかどうかを確認できます。誰かがより良い説明を提供できますか? 次に、この時点で、次のコードがあります。 NSString *thing = @"Hello, this is Craig"; SEL sel = @selector(lowercaseString:); NSString *lower = (([thing respondsToSelector:sel]) ? @"YES" : @"NO"); NSLog (@"Responds to lowercaseString: %@", lower); if ([thing respondsToSelector:sel]) //(lower == @"YES") NSLog(@"lowercaseString is: %@", [thing lowercaseString]); ただし、thing明らかにNSStringの一種であり、lowercaseStringに応答する必要がありますが、「respondsToSelector」条件付きで「YES」を返すことができません...


4
キューに入れられたperformSelector:afterDelay呼び出しのキャンセル
呼び出し時に、すでにスタックされているセレクターイベントをイベントスタックまたはタイマースタック(またはAPIで使用されるメカニズム)からキャンセルできるかどうか誰かが知っていますperformSelector:withObject:afterDelayか? 私はこのイベントスタックを使用して、TabBarタブ内の画像の属性を変更しましたが、1回のループですばやく実行できるように、最大​​10秒の変更をキューに入れる場合がありました。 ユーザーがタブを切り替えると問題が発生します...たとえば、タブ#4が有効になるとすぐに表示される画像の画像変更をキューに入れ、ユーザーがすぐにタブ#3に切り替えてから、タブに戻ると言う#4 ...これにより、古いキューがまだ再生されている間に、10秒に相当する変更が再度キューに入れられます。十分に速く切り替えられた場合、おそらく2〜3秒でキューに入れられますが、5秒で到着します。ストリームは問題でした。 新しいスタックを配置する前に、変更の古いスタックをキャンセルする方法が必要でした... 私はこのクエリを過去形で書いています。なぜなら、再生機能にタカ目イベントフィルターを追加することで、この問題の代替ソリューションをすでに思いついたからです。でも、イベントのキャンセルが可能かどうかはまだ気になりますが、そういう知識は今後重宝すると思います。提供された支援に感謝します:)

6
Androidボタンセレクター
これはボタンセレクタで、通常の場合は赤く表示され、押すと灰色に表示されます。 PRESSEDを押したときにテキストのサイズと色も変更されるように、コードをさらに直接変更する方法を教えてください。どうもありがとう! <item android:state_pressed="true" > <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="2dp" android:color="@color/black" /> <solid android:color="@color/grey"/> <padding android:left="5dp" android:top="2dp" android:right="5dp" android:bottom="2dp" /> <corners android:radius="5dp" /> </shape> </item> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="2dp" android:color="@color/black" /> <solid android:color="#FF6699"/> <padding android:left="5dp" android:top="2dp" android:right="5dp" android:bottom="2dp" /> <corners android:radius="5dp" /> </shape> </item>
115 android  selector 

5
Android:セレクターの無効なボタンのtextColorが表示されない?
セレクターを使用してボタンを作成しようとしていますが、ボタンには次の状態があります。 有効/無効 押された/押されていない 上記の状態によると。ボタンを操作する必要があります: テキストの色 背景画像 ボタンは無効になっているところから始まるので、無効なtextColorと無効なボタンの背景が必要です。しかし、デフォルトのtextColor(スタイルで指定)が表示され、背景画像は表示されません。 これが私のセレクタbutton_selector.xmlです <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false" android:state_enabled="false" android:textColor="#9D9FA2" android:drawable="@drawable/button" /> <item android:state_pressed="true" android:state_enabled="true" android:drawable="@drawable/button_pressed"/> <item android:state_pressed="true" android:state_enabled="false" android:textColor="#9D9FA2" android:drawable="@drawable/button"/> <item android:state_pressed="false" android:state_enabled="true" android:drawable="@drawable/button"/> </selector> そして、ここに私のlayout.xmlの私のボタン宣言があります <Button android:id="@+id/reserve_button" android:text="@string/reserve_button" android:layout_width="120dp" android:layout_height="40dp" android:layout_marginTop="10dp" android:layout_marginLeft="20dp" android:paddingRight="15dp" android:layout_gravity="left" style="@style/buttonStyle" android:background="@drawable/button_selector" /> そして最後にこれが私のスタイルです(私のデフォルトのtextColorが設定されています) <?xml version="1.0" encoding="utf-8"?> …

4
Objective-Cメソッド名の最後の部分に引数が必要なのはなぜですか(複数の部分がある場合)?
Objective-Cでは、最後のコンポーネントが引数を取らない場所でメソッド名を宣言することはできません。たとえば、次は違法です。 -(void)take:(id)theMoney andRun; -(void)take:(id)yourMedicine andDontComplain; なぜObjective-Cはこのように設計されたのですか?それは、Smalltalkのアーティファクトだけでしたか? Smalltalkではメッセージの呼び出しに区切り文字がないため、この制限はSmalltalkでは理にかなっています。したがって、最後のコンポーネントは最後の引数に対する単項メッセージとして解釈されます。たとえば、BillyAndBobby take:'$100' andRunはとして解析されBillyAndBobby take:('$100' andRun)ます。これは、角かっこが必要なObjective-Cでは問題になりません。 パラメータなしのセレクタコンポーネントをサポートしても、プログラマが選択するメソッド名(たとえばrunWith:、take:andRun)は、プログラムの機能的なセマンティクスにも、言語の表現力にも影響しません。確かに、パラメーターのないコンポーネントを含むプログラムは、アルファを持たないものと同じです。したがって、そのような機能が不要であると述べている回答(Objective-Cデザイナーの理由が記載されている場合を除き、誰かがたまたまBrad CoxやTom Loveを知っていますか?彼らはここにいますか?)には興味がありません。メソッド名を記述して、機能が不要になるようにする方法。主な利点は、可読性と書き込み可能性(読みやすさのようなものですが、ご存知のとおりです)です。これは、自然言語の文にさらに似たメソッド名を記述できることを意味します。同類-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication*)theApplicationマット・ギャラガーが指摘する(「ココアと恋」に-(BOOL)application:(NSApplication*)theApplication shouldTerminateAfterLastWindowClosed、したがって、パラメータを適切な名詞のすぐ隣に配置します。 AppleのObjective-Cランタイム(たとえば)は、この種のセレクターを完全に処理できるので、コンパイラーはどうしてでしょうか?それらをメソッド名でもサポートしないのはなぜですか? #import <Foundation/Foundation.h> #import <objc/runtime.h> @interface Potrzebie : NSObject -(void)take:(id)thing; @end @implementation Potrzebie +(void)initialize { SEL take_andRun = NSSelectorFromString(@"take:andRun"); IMP take_ = class_getMethodImplementation(self, @selector(take:)); if (take_) { if (NO == class_addMethod(self, take_andRun, take_, "@@:@")) { …

10
iOS-複数の引数とafterDelayを使用してperformSelectorを実装する方法
私はiOS初心者です。私は次のようなセレクターメソッドを持っています- - (void) fooFirstInput:(NSString*) first secondInput:(NSString*) second { } 私はこのようなものを実装しようとしています- [self performSelector:@selector(fooFirstInput:secondInput:) withObject:@"first" withObject:@"second" afterDelay:15.0]; しかし、それは私に言ってエラーを与えます- Instance method -performSelector:withObject:withObject:afterDelay: not found 私が欠けているものに関するアイデアはありますか?

6
Swiftで@objcを使用するのはいつですか?
Swiftでは、次のような方法がいくつかあります。 @objc private func doubleTapGestureRecognized(recognizer: UITapGestureRecognizer) @objcをいつ使用するのか疑問に思いましたか?いくつかのドキュメントを読みましたが、Objective-Cで呼び出し可能にする場合は、@ objcフラグを追加する必要があると言われています。 ただし、これはSwiftのプライベート関数です。@ objは何をしますか?

9
ボタンにシェイプとセレクターを同時に適用するにはどうすればよいですか?
次のようなボタンの形状を適用しました。 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:startColor="#DD000000" android:endColor="#DD2d2d2d" android:angle="90"></gradient> <corners android:radius="15dip"></corners> </shape> 次に、次のようなセレクターを使用します。 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/active" android:state_pressed="true" /> <item android:drawable="@drawable/passive"/> このボタンにも。出来ますか ...???

6
「セレクターの配列」を作成する方法
私はiPhoneSDK(3.0)を使用しており、1つのクラス内でさまざまなメソッドを呼び出すためのセレクターの配列を作成しようとしています。 明らかに、私は何か間違ったことをしています(@selectorはクラスとは見なされないため、NSArrayに詰め込むことは機能していません)。 私はこれを試しましたが、明らかに間違っています。 このようなセレクターの配列を作成する簡単な方法はありますか?または、メソッドのコレクションを反復処理するためのより良い方法はありますか? selectors = [NSArray arrayWithObjects: @selector(method1), @selector(method2), @selector(method3), @selector(method4), @selector(method5), @selector(method6), @selector(method7), nil]; for (int i = 0; i < [selectors count]; i++) { if ([self performSelector:[selectors objectAtIndex:i]]) // do stuff; }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.