Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Iphone Cocoa Touch:访问器方法+;记忆需要澄清 请考虑构造数组并将其返回到父对象的问题。请看下面我的代码和注释_Iphone_Objective C_Cocoa_Cocoa Touch - Fatal编程技术网

Iphone Cocoa Touch:访问器方法+;记忆需要澄清 请考虑构造数组并将其返回到父对象的问题。请看下面我的代码和注释

Iphone Cocoa Touch:访问器方法+;记忆需要澄清 请考虑构造数组并将其返回到父对象的问题。请看下面我的代码和注释,iphone,objective-c,cocoa,cocoa-touch,Iphone,Objective C,Cocoa,Cocoa Touch,我的问题是:为什么方法三有效,而方法一和方法二无效? // **************************** // Master.m // **************************** // Simply declare array and call accessor NSMutableArray * allElementTypes; allElementTypes = [ElementObject badElements]; // ****************

我的问题是:为什么方法三有效,而方法一和方法二无效?

// ****************************
// Master.m
// ****************************

// Simply declare array and call accessor
NSMutableArray * allElementTypes;
allElementTypes = [ElementObject badElements];




// ****************************
// ElementObject.m
// ****************************

// Doesn't work (EXE_BAD_ACCESS)
+ (NSMutableArray*) badElements {
    NSMutableArray * array = [[NSMutableArray alloc] initWithObjects:@"crab", @"poison", @"snake"];
    return array;
}

// Doesn't work (EXE_BAD_ACCESS)
+ (NSMutableArray*) badElements {
    return [NSMutableArray arrayWithObjects:@"crab", @"poison", @"snake"];
}

// WORKS
+ (NSMutableArray*) badElements {
    NSMutableArray * array = [[NSMutableArray alloc] init];
        [array addObject:@"crab"];
        [array addObject:@"poison"];
        [array addObject:@"snake"];

    return array;   // TODO: release this memory
}

-arrayWithObjects:or-initWithObjects采用以零结尾的可变长度参数列表

你写道:

[NSMutableArray数组,其对象为:@“螃蟹”、“毒药”、“蛇”

在你应该写的地方:


[NSMutableArray数组,其对象为:@“螃蟹”、“毒药”、“蛇”,无]

-arrayWithObjects:或-initWithObjects采用以零结尾的可变长度参数列表

你写道:

[NSMutableArray数组,其对象为:@“螃蟹”、“毒药”、“蛇”

在你应该写的地方:


[NSMutableArray数组,其对象为:@“螃蟹”、“毒药”、“蛇”,无]

它是
EXC\u BAD\u ACCESS
,顺便说一句
EXC
,是异常的缩写。它是
EXC\u BAD\u ACCESS
,顺便说一句
EXC
,是异常的缩写。