Освобождение / сохранение NSMutableDictionary - PullRequest
1 голос
/ 04 апреля 2011
@interface SearchViewController : UIViewController<UITableViewDelegate, UITableViewDataSource> {

    NSMutableDictionary * results;

}

@property (nonatomic, retain) NSMutableDictionary * results;

и @synthesize результаты; в .м

Этот код рухнет

NSMutableDictionary * md = [[NSMutableDictionary alloc] init];

results = md;

[md release];

С ЭТИМ КОДОМ все в порядке

NSMutableDictionary * md = [[NSMutableDictionary alloc] init];

results = md;

Мне ясно, что указатель не сохраняется, но я не знаю почему, я сделал что-то. не так?

1 Ответ

3 голосов
/ 04 апреля 2011

Вы должны использовать

self.results = md

, чтобы сохранить md.

Вы получаете доступ к свойству с точечным синтаксисом.Присваивая что-то свойству с помощью точечного синтаксиса, вы вызываете установщик, который сохраняет значение в вашем случае.Без точки вы просто назначаете изменяемый словарь для результатов, не вызывается никакой установщик.

Вы можете прочитать о свойствах в языке программирования Apple Objective-C , посмотрите Общее использование чуть ниже абзаца с синтаксисом точек.

...