当从第一个数组生成随机图像时,从一个NSArray复制到另一个



我正在开发一个应用程序,其中从NSMutableArray加载图像。它生成随机图像并将其加载到iOS中的UIImageview。我想把这个数组在载入后保存成另一个数组我该怎么做呢。提前谢谢。

My Code As Below.

//FrontsCards is My Array

    for(m=0; m<[FrontsCards count];m++)
    {
        ImgView.alpha=1;
        ImgView.tag=m;
        NSLog(@"Img View Tag %d",ImgView.tag);
        randIdx=arc4random()%[FrontsCards count];
        NSString *imageName=[FrontsCards objectAtIndex:randIdx];
        NSString *fullImageName=[NSString stringWithFormat:@"%@",imageName];
        int padding=0;
        CGRect imageViewFrame=CGRectMake(scrollView.frame.size.width*m+padding, scrollView.frame.origin.y, scrollView.frame.size.width-2*padding, scrollView.frame.size.height);
        ImgView=[[UIImageView alloc]initWithFrame:imageViewFrame];
        [ImgView setImage:[UIImage imageNamed:fullImageName]];
        [scrollView addSubview:ImgView];
        [ImgView setAccessibilityIdentifier:[FrontsCards objectAtIndex:randIdx]];

        UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapImgView:)];
        doubleTap.numberOfTapsRequired = 2;
        doubleTap.delegate = self;

        [self.ImgView setImage:[UIImage imageNamed:fullImageName]];

        NSLog(@"full image name %@",fullImageName);
        NSLog(@"Image Name = %@", fullImageName);
        [self.ImgView setTag:randIdx];

        [self.ImgView addGestureRecognizer:doubleTap];
        self.ImgView.userInteractionEnabled=YES;
    }
    CGSize scrollViewSize=CGSizeMake(scrollView.frame.size.width*[FrontsCards count], scrollView.frame.size.height);
    [scrollView setContentSize:scrollViewSize];
    [self.view addSubview:scrollView];

ViewDidLoad创建另一个Arrayinit,并在生成时依次添加对象

NSString *imageName=[FrontsCards objectAtIndex:randIdx];
[yourNewArray addObject:imageName];

尝试复制NSMutableArray

NSArray *newArray = [[oldArray mutableCopy]

或:

NSMutableArray *newArray = [[[NSMutableArray alloc] initWithArray:oldArray copyItems:YES] autorelease];

在这段代码之后: randIdx=arc4random()%[FrontsCards count];

将索引保存到另一个数组中,并使用它指向原始数组。

最新更新