Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c EXC_使用阵列时访问错误_Objective C_Nsarray_Exc Bad Access - Fatal编程技术网

Objective c EXC_使用阵列时访问错误

Objective c EXC_使用阵列时访问错误,objective-c,nsarray,exc-bad-access,Objective C,Nsarray,Exc Bad Access,我在使用数组(非ARC代码)时总是出错 我的代码: @implementation InfoController NSMutableArray *lbCityArray; NSMutableArray *lbTimeArray; NSMutableArray *lbCameInArray; NSMutableArray *lbCameOutArray; NSMutableArray *lbInArray; NSMutableArray *lbOutArray; 在我看来,我做了些什么 - (

我在使用数组(非ARC代码)时总是出错

我的代码:

@implementation InfoController

NSMutableArray *lbCityArray;
NSMutableArray *lbTimeArray;
NSMutableArray *lbCameInArray;
NSMutableArray *lbCameOutArray;
NSMutableArray *lbInArray;
NSMutableArray *lbOutArray;
在我看来,我做了些什么

- (void)viewDidLoad
{
    [super viewDidLoad];

    lbCityArray = [[NSMutableArray alloc] initWithCapacity:1];
    lbTimeArray = [[NSMutableArray alloc] initWithCapacity:1];
    lbCameInArray = [[NSMutableArray alloc] initWithCapacity:1];
    lbCameOutArray = [[NSMutableArray alloc] initWithCapacity:1];
    lbInArray = [[NSMutableArray alloc] initWithCapacity:1];
    lbOutArray = [[NSMutableArray alloc] initWithCapacity:1];

    //—add some values to arrays
    NSString *City = @"London";
    [lbCityArray addObject:City];
    //—————————————-----------------------//    

}
而且每次我点击后退按钮时,应用程序都会崩溃,无法访问。若我评论添加值到数组所有工作,返回按钮不崩溃的应用程序。我了解到,如果您使用非ARC代码,则必须在dealloc中手动释放

我添加到dealoc

[_InfoTableView release];
[lbCityArray release];
[lbTimeArray release];
[lbCameInArray release];
[lbCameOutArray release];
[lbInArray release];
[lbOutArray release];
[super dealloc];
并且没有任何变化,应用程序仍然崩溃。问题出在哪里


解决方案-我移动到ARC,所有问题都消失了。谢谢。

如果您将变量转换为实例变量而不是全局变量,这将非常有帮助

更改此项:

@implementation InfoController

NSMutableArray *lbCityArray;
NSMutableArray *lbTimeArray;
NSMutableArray *lbCameInArray;
NSMutableArray *lbCameOutArray;
NSMutableArray *lbInArray;
NSMutableArray *lbOutArray;
进入:


如果没有花括号,您实际上是在创建全局变量,而不是实例变量。

您能显示崩溃日志吗?他不会在第0x198f0b2行上编写标准错误:movzwl 0xc(%edx),他会编写EXC_BAD_访问和一些地址。如果看不到更多代码,我无法确定您在做什么,但
\u InfoTableView
?您是否在xib文件中实例化了它?如果你这样做了,你为什么要发布它?伙计们,我使用wsdltoobjc和由这个工具生成的代码,而不是ARC(_InfoTableView,我在这个视图中使用,问题不在这个TableView中。我转到ARC,所有问题都消失了。谢谢。
@implementation InfoController {
    NSMutableArray *lbCityArray;
    NSMutableArray *lbTimeArray;
    NSMutableArray *lbCameInArray;
    NSMutableArray *lbCameOutArray;
    NSMutableArray *lbInArray;
    NSMutableArray *lbOutArray;
}