Я надеюсь, что это имеет смысл ... У меня есть NSMutableArray, в котором я пытаюсь хранить несколько UIScrollView. Каждый UIScrollView будет иметь несколько изображений, и конечной целью является возможность разрешить пользователю для вертикального перемещения по категориям (каждый экземпляр UIScrollView) и по горизонтали для каждого изображения в этой категории (каждый экземпляр UIImageView). Пока, пока я не получу этот код, я просто создаю 1 UIScrollView с 1 изображением, и я добавляю это в scrollViewManager. Кажется, это все правильно добавляет, но когда я оставляю эту функцию, игра заканчивается. Мой массив пуст. Я не понимаю. Должен ли я делать какую-то глубокую копию, когда добавляю в массив, чтобы он не разрушался. Возможно, я это выясню, когда я проснусь завтра, но пока я хотел бы разбить все на виду. Заранее спасибо!Объекты NSMutableArray теряются
EDIT: Извините за отсутствие деталей, я разместил это довольно поздно. Мой проект использует ARC, поэтому я не выпускаю scrollView где угодно. Вот декларация scrollViewManager в моем файле заголовка:
@property (nonatomic, retain) NSMutableArray *scrollViewManager;
Вот код я использую, чтобы получить мой Scrollview:
UIScrollView *test = (UIScrollView*) [self.scrollViewManager objectAtIndex: 0];
А вот код для инициализации Scrollview и массив:
scrollViewManager = [[NSMutableArray alloc] initWithCapacity: 1];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
[scrollView setBackgroundColor:[UIColor blackColor]];
[scrollView setCanCancelContentTouches:NO];
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView.clipsToBounds = YES; // default is NO, we want to restrict drawing within our scrollview
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
NSString *imageName = @"pic1.png";//[NSString stringWithFormat:@"pic%d.jpg", i+1];
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
// setup each frame to a default height and width, it will be properly placed when we call "updateScrollList"
CGRect rect = imageView.frame;
rect.size.height = 400;
rect.size.width = 300;
imageView.frame = rect;
imageView.tag = 1; // tag our images for later use when we place them in serial fashion
[scrollView addSubview:imageView];
[self.scrollViewManager addObject: scrollView];
В вашей первой строке у вас есть 'scrollViewManager', в конце вашего метода у вас есть' self.scrollViewManager'. Какой из них опечатка? – sosborn
Является ли scrollViewManager объявленным слабым свойством? – lnafziger
Код, который вы опубликовали, в порядке, сам по себе. Вам нужно показать более подробную информацию: какова область действия 'scrollViewManager'. Где и как оно объявляется? Каков пример кода, который вы вызываете, который возвращает пустой 'scrollViewManager' после выполнения кода выше? – Joel