I-Phone: Попытка проверить массив для элемента на основе созданной строки - PullRequest
0 голосов
/ 21 марта 2010

Я пишу программу, которая объединит строку на основе букв, а затем проверит массив, чтобы увидеть, существует ли эта строка. Если это произойдет, то в IB будет напечатана строка, в которой говорится:

Я разработал все входы и выходы, за исключением того факта, что симулятор продолжает падать на меня!

Вот код:

-(IBAction)checkWord:(id)sender
{
NSMutableArray *wordList = [NSMutableArray arrayWithObjects:@"BIKE", @"BUS", @"BILL", nil];


if([wordList containsObject:theWord])
{
NSString *dummyText = [[NSString alloc] initWithFormat:@"%@ is a real word.", theWord];
checkText.text = dummyText;

[dummyText release];
}

}

"theWord" - это строка, на которую ссылается массив, чтобы проверить, соответствует ли он элементу, содержащемуся в нем. В этом случае «ВЕЛОСИПЕД» - это «Слово».

Заранее благодарю за помощь!

-MB

Ответы [ 3 ]

1 голос
/ 21 марта 2010

Переменная «checkText» - это UILabel, которая связана с «dummyText». Определяется как retain, nonatomic.

-(IBAction)checkWord:(id)sender
{
NSArray *wordList = [[NSArray alloc] initWithObjects: @"BIKE", @"BUS", @"BILL", nil];


if([wordList containsObject: theWord])
{
    NSString *dummyText = [[NSString alloc] initWithFormat:@"%@ is a real word.", theWord];
    checkText.text = dummyText;
    [dummyText release];
}
else{

    NSString *dummyText = [[NSString alloc] initWithFormat:@"%@ is not a real word.", theWord];
    checkText.text = dummyText;
    NSLog(@"NOT A WORD");
    [dummyText release];
}

[wordList release];

}

Меня интересует, должен ли containsObject быть оператором BOOL? Если да, то как бы это выразить?

Вот как checkText и theWord определяются в заголовочном файле проекта.

 @interface blah blah {
 IBOutlet UILabel *checkText;
 NSString *theWord;
 }
 @property (retain, nonatomic) UILabel *checkText;
 @property (retain, nonatomic) NSString *theWord;
 @end

Это не весь файл, просто демонстрация того, как определены переменные.

0 голосов
/ 21 марта 2010

Как вы определили вашу checkText собственность?Для свойства NSString установлено значение copy, а не retain?

PS Не создавайте ответы на свой вопрос, чтобы добавить дополнительную информацию.Вместо этого измените исходный вопрос.

0 голосов
/ 21 марта 2010

Вот что говорит консоль:

2010-03-20 21:01:42.822 Button_fun[5563:207] *** -[__NSPlaceholderArray arrayWithObjects:]: unrecognized selector sent to instance 0x3906450
2010-03-20 21:01:42.823 Button_fun[5563:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray arrayWithObjects:]: unrecognized selector sent to instance 0x3906450'
2010-03-20 21:01:42.823 Button_fun[5563:207] Stack: (
29295707,
2547500297,
29677627,
29247094,
29099714,
12827,
2724869,
3132238,
3140975,
3136187,
2829791,
2738120,
2764897,
37391705,
29080448,
29076552,
37385749,
37385946,
2768815,
10484,
10338
)

И да, приложение автоматически закрывается при нажатии кнопки «Проверить слово».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...