Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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 我为什么要撞车?解除锁定/释放+;财产/保留古怪_Objective C - Fatal编程技术网

Objective c 我为什么要撞车?解除锁定/释放+;财产/保留古怪

Objective c 我为什么要撞车?解除锁定/释放+;财产/保留古怪,objective-c,Objective C,我的控制器中的代码: CalcBorderBlocks *calcBB = [[CalcBorderBlocks alloc] init]; NSMutableArray *blockArray = [calcBB calc:341241133]; [calcBB release]; // Releases calcBB. CalcBorderBlocks.h中的代码: #import <Foundation/Foundation.h> @interface CalcBorder

我的控制器中的代码:

CalcBorderBlocks *calcBB = [[CalcBorderBlocks alloc] init];
NSMutableArray *blockArray = [calcBB calc:341241133];
[calcBB release]; // Releases calcBB.
CalcBorderBlocks.h中的代码:

#import <Foundation/Foundation.h>

@interface CalcBorderBlocks : NSObject {
 @private
  NSMutableArray *blockArray_;
}
@property(nonatomic, retain) NSMutableArray *blockArray;

- (NSMutableArray *)calc:(int)blockID;

@end

@结束

发布崩溃的回溯。更有可能的是,这是因为您将数组中的某些内容(或数组本身)放在了其他地方。

[calcBB release]; // Releases calcBB.
那就是坠机的原因

您正在释放
calcBB
,然后在dealloc中释放
blockArray

我怀疑您需要保留blockArray,根据需要处理它,然后再释放它

CalcBorderBlocks *calcBB = [[CalcBorderBlocks alloc] init];
NSMutableArray *blockArray = [[calcBB calc:341241133] retain];
[calcBB release]; // Releases calcBB.

// Process blockArray as needed

[blockArray release];
这:


通常意味着blockArray会被保留,但也会自动删除。如果你想让它保持活力,你必须自己保留它,否则它会在一段时间后被自动删除池释放。

我喜欢这个标题…为什么我会崩溃?:)
CalcBorderBlocks *calcBB = [[CalcBorderBlocks alloc] init];
NSMutableArray *blockArray = [[calcBB calc:341241133] retain];
[calcBB release]; // Releases calcBB.

// Process blockArray as needed

[blockArray release];
  CalcBorderBlocks *calcBB = [[CalcBorderBlocks alloc] init];
  NSMutableArray *blockArray = [calcBB calc:341241133];
  [calcBB release]; // Releases calcBB.