IPhone SDK删除NSLog会导致NSArray未声明!
我有一个正在运行的应用程序,我将要分发,并且正在整理其中的NSLog语句。当我从“case”语句中删除NSLog时,NSArray在“case”语句中声明了之前预期的错误和未声明的错误。有人知道为什么会这样吗?这发生在我的应用程序中的所有case语句上,我现在正在删除NSLog。 下面显示了一个示例代码部分: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
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中的对象时,它不会增加保留计数,只会从数组中返回对象。感谢您的帮助以及您对我的问题的及时回复。干杯。麦克斯韦·西格尔——如果这是答案,点击旁边的复选标记,这样系统就知道问题得到了回答,埃亚尔·雷德勒也会因此得到奖励。