IPhone SDK удаление NSLog приводит к тому, что NSArray остается необъявленным - PullRequest
2 голосов
/ 07 февраля 2010

У меня есть работающее приложение, которое я собираюсь распространять, и я собираю в нем операторы NSLog. Когда я удаляю NSLog из оператора "case", NSArray объявляет в операторе "case" ошибки как ожидаемое выражение до и не объявлено. Кто-нибудь есть идеи, почему это может быть? Это происходит со всеми инструкциями case в моем приложении, где я сейчас удаляю NSLog. Примеры разделов кода приведены ниже:

switch (chosenScene)
{
    case 0:
        //NSLog(@"group1"); // the following NSArray errors with "expected expression.." AND "..group1Secondsarray undeclared"
        NSArray *group1SecondsArray = [NSArray arrayWithObjects: @"Dummy",@"1/15",@"1/30",@"1/30",@"1/60",@"1/125",@"1/250",nil];
        NSArray *group1FStopArray = [NSArray arrayWithObjects: @"Dummy",@"2.8",@"2.8",@"4",@"5.6",@"5.6",@"5.6",nil];
        NSString *group1SecondsText = [group1SecondsArray objectAtIndex:slider.value];
        calculatedSeconds.text = group1SecondsText;
        NSString *group1FStopText = [group1FStopArray objectAtIndex:slider.value];
        calculatedFStop.text = group1FStopText;
        [group1SecondsText release];
        [group1FStopText release];          
        break;

Ответы [ 2 ]

1 голос
/ 07 февраля 2010

Я не знаю формального объяснения, но если вы делаете что-то иное, чем простое присваивание или возвращение значения в операторе case, вам нужно заключить его в квадратные скобки.

case 0:
{
    NSArray* myArray=[NSArray arrayWithObjects:ob1, obj2,nil];
    ...
}
0 голосов
/ 07 февраля 2010

Вам не нужно освобождать group1SecondsText и group1FStopText, они имеют счет сохранения 1, потому что они находятся в массиве, если вы отпустите их, они станут недействительными, а когда массив будет освобожден, он сломается .

Когда вы обращаетесь к объектам в NSArray с помощью objectAtIndex:, это не увеличивает количество сохраняемых данных, оно просто возвращает объект из массива.

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