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


这是为什么 ?

最佳答案

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

像这样在.m文件的@implementation行下:

@property (nonatomic, strong) NSArray *mruSearchItems;


如果您已经有一个属性(并且在这里没有显示),请确保它是strong(不是weak),否则将释放您的数组。

07-27 21:33