0
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

何故ですか ?

4

1 に答える 1

1

ドット表記構文 ( self.mruSearchItems) を使用できるようにするには、プロパティを作成する必要がありmruSearchItemsます。

.m ファイルの @implementation 行のすぐ下に次のように記述します。

@property (nonatomic, strong) NSArray *mruSearchItems;

既にプロパティを持っている (そしてここに表示していない) 場合は、それがstrong(ではないweak) であることを確認してください。そうしないと、配列が解放されます。

于 2012-07-12T00:38:58.690 に答える