IPhone SDK删除NSLog会导致NSArray未声明!

IPhone SDK删除NSLog会导致NSArray未声明!,iphone,sdk,nsarray,Iphone,Sdk,Nsarray,我有一个正在运行的应用程序,我将要分发,并且正在整理其中的NSLog语句。当我从“case”语句中删除NSLog时,NSArray在“case”语句中声明了之前预期的错误和未声明的错误。有人知道为什么会这样吗?这发生在我的应用程序中的所有case语句上,我现在正在删除NSLog。 下面显示了一个示例代码部分: switch (chosenScene) { case 0: //NSLog(@"group1"); // the following NSArray errors

我有一个正在运行的应用程序,我将要分发,并且正在整理其中的NSLog语句。当我从“case”语句中删除NSLog时,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;

我不知道正式的解释,但是如果你做的只是简单的赋值或者在case语句中返回一个值,那么你需要把它放在括号里

case 0:
{
    NSArray* myArray=[NSArray arrayWithObjects:ob1, obj2,nil];
    ...
}

您不必释放
group1secondtext
group1FStopText
,它们的保留计数为1,因为它们在数组中,如果释放它们,它们将变为无效,当释放数组时,它将断开


当您使用
objectAtIndex:
访问NSArray中的对象时,它不会增加保留计数,只会从数组中返回对象。

感谢您的帮助以及您对我的问题的及时回复。干杯。麦克斯韦·西格尔——如果这是答案,点击旁边的复选标记,这样系统就知道问题得到了回答,埃亚尔·雷德勒也会因此得到奖励。