我希望这有意义......我有一个NSMutableArray,我正在尝试存储多个UIScrollView。每个UIScrollView将有多个图像,最终目标是允许用户垂直滑动类别(UIScrollView的每个实例)和水平对于该类别中的每个图像(UIImageView的每个实例)。现在,直到我得到这个代码才能工作,我只是用1个图像创建1个UIScrollView,我将它添加到scrollViewManager。这似乎正确地添加了一切,但是当我离开这个功能时,游戏结束了。我的数组是空的。我不明白。当我添加到Array时,我应该做一些深度复制,这样它就不会被破坏。也许我会在明天醒来的时候明白这一点,但就目前而言,我想要打破一切。提前谢谢!
编辑:很抱歉由于缺乏细节,我发布的内容相当晚。我的项目是使用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];
答案 0 :(得分:0)
有些事情含糊不清。例如:
如果您在定义属性时自动创建ivars,则应将您的ivar称为_scrollViewManager
,而不是scrollViewManager
。
使用此方法时,self.scrollViewManager
的使用是正确的。
我总是以相反的方式做这种事情。当我有这样的房产时:
@property (nonatomic, strong) NSMutableArray* myArray;
我总是使用self
关键字初始化它们:
self.myArray = [NSMutableArray new];
在修改它时,我总是使用生成的ivar:
[_myArray addObject:myFineObject];
我认为这是我从非ARC转向ARC时一直使用的东西。不确定它是否仍然可行,但它的工作方式与预期相符。