1

次のコードがあります。

- (NSString*)returnIncorrectDef {
NSInteger defIndex = [self randomIndex];

NSString *incorrectDef = [NSString stringWithFormat:@"%@", [definitions objectAtIndex:defIndex]];

if (([incorrectDef isEqualToString:self.definitionString]) || ([incorrectDef isEqualToString:def1.titleLabel.text])) {
    // I want to restart the method here
    [self returnIncorrectDef];
} else {
    return incorrectDef;
}}

if 句が満たされないまで、このメソッドを再開できるようにしたいと考えています。ただし、このコードを試すと、「コントロールが非無効関数の終わりに達する可能性があります」というエラーが表示されます。どうすればいいですか?

4

3 に答える 3

0

[self returnIncorrectDef];単に行う 代わりに:return [self returnIncorrectDef];

このようにして、関数を再帰的に呼び出して値を返します。ただし、無限ループを防ぐために、評価パラメーターが変更されていることを確認してください

編集しますが、これはこの特定のケースでは必要なものではない可能性があります(メソッドを何度も呼び出す)

于 2013-09-15T19:32:55.480 に答える