数组复制崩溃应用程序

时间:2012-07-12 00:25:04

标签: objective-c ios xcode

NSArray *mruSearchItems;
NSMutableArray *mruItems;

self.mruItems = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:@"searches"]];

. 
.
 At this point mruItems becomes empty.
.
.
self.mruSearchItems = [[NSArray alloc] initWithArray:self.mruItems]; 

最后一行导致崩溃。

EXC_BAD_ACCESS

为什么?

1 个答案:

答案 0 :(得分:1)

为了能够使用点符号语法(self.mruSearchItems),您需要将mruSearchItems作为属性。

就像你的.m文件的@implementation行下面那样:

@property (nonatomic, strong) NSArray *mruSearchItems;

如果您已经拥有了一个属性(并且此处未显示),请确保它是strong(而非weak),否则您的阵列将被释放。