объекты внутри NSMutableDictionary теряются во время выполнения. указатели как-то потеряны - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть NSMutableDictionary в классе

@interface ClassName : UITableViewController {
        NSMutableArray *doctors_set;
}

@property (nonatomic, retain)   NSMutableArray *doctors_set;

@implementation ClassName
@synthesize DocID,doctors_set;

Я добавляю 4 объекта

DoctorsSet *set = [[DoctorsSet alloc] init];

//DoctorsSet is an extended NSObject

[doctors_set addObject:set];

, что я хочу, чтобы использовать наборы в одном классе (яиспользуя табличное представление), поэтому, когда я нажимаю на ячейку, я должен восстановить набор по индексу, повернутому

DoctorsSet *set = (DoctorsSet *)[doctors_set objectAtIndex:indexPath.row];

, когда происходит событие didSelectRowAtIndexPath .. наборы в индексах потеряны, я вижу это вотладчик.у индексов даже нет типа DoctorsSet .. они заменяются некоторыми случайными типами, которые говорят мне, что объекты как-то не сохраняются ... Это происходит, если я нажимаю 2,3 раза на ячейки таблицы

когда я назначаю массив в отладчике, я получаю

self 
  doctors_set = (_NSARRAYM *) pointerid 4 objects
    0 = (DoctorsSet *) pointerid
    1 = (DoctorsSet *) pointerid
    2 = (DoctorsSet *) pointerid
    3 = (DoctorsSet *) pointerid

, когда получаю ошибку, потому что это говорит о том, что селектор не принадлежит объекту (это потому, что сам объект потерян)

self 
  doctors_set = (_NSARRAYM *) pointerid 4 objects
    0 = (NSObject *) pointerid
    1 = (NSObject *) pointerid
    2 = (NSCFString *) pointerid
    3 = (UITouchData *) pointerid

1 Ответ

0 голосов
/ 22 сентября 2011

Где вы размещаете массив NSMutableArray и присваиваете его свойству doctor_set? Я предполагаю, что вы назначаете его, не сохраняя его.

Вы, вероятно, хотите сделать что-то вроде:

doctors_set = [[NSMutableArray alloc] init];

Если вы покажете, как вы распределяете и храните это свойство, вам будет проще сказать, как его исправить.

...