私が呼び出していたこのメソッドがあり、すべて問題ありませんでした:
データハンドラ:
.h:
-(void)saveNumberOfTries:(NSString*)numberOfTries toWord:(NSString *)indexOfWord;
.m:
-(void)saveNumberOfTries:(NSString*)numberOfTries toWord:(NSString *)indexOfWord {...}
ViewController.m
DataHandler *dataHandler = [[DataHandler alloc] init];
[dataHandler performSelector:@selector(saveNumberOfTries:toWord:) withObject:numberOfTries withObject:wordId];
..次に、もう 1 つの引数を取るように更新しました。
データハンドラ:
.h:
-(void)saveNumberOfTries:(NSString*)numberOfTries toWord:(NSString *)indexOfWord currentLevel:(NSString*)userSelectedLevel;
.m:
-(void)saveNumberOfTries:(NSString*)numberOfTries toWord:(NSString *)indexOfWord currentLevel:(NSString*)userSelectedLevel {...}
ViewController.m:
DataHandler *dataHandler = [[DataHandler alloc] init];
[dataHandler performSelector:@selector(saveNumberOfTries:toWord:currentLevel:) withObject:numberOfTries withObject:wordId withObject:selectedLevel];
しかし、コンパイラは現在、「インスタンスメッセージのレシーバータイプ 'DataHandler' は、セレクター 'performSelector:withObject:withObject:withObject:' を使用してメソッドを宣言していません」と表示しています。
元のメソッド呼び出しを (DataHandler で何も変更せずに) 入れた場合、メソッドはもう存在しませんが、警告は表示されません。Xcode が私の変更に追いついていないようです。アイデアや提案はありますか?