0

私の iOS アプリケーションでは、製品に関する情報を表示するために大量の画像 (約 1000 個) を使用しています。次に、実行時にこのようなエラーが発生しました。

ImageIO: CGImageRead_mapData 'open' failed エラー = 24 (開いているファイルが多すぎます)

開いているファイルを閉じるにはどうすればよいですか?また、NSFileManager を使用しています。

ご回答ありがとうございます。

アップデート:

私のviewdidloadからのいくつかのコード、

while(sqlite3_step(compiledStatement) == SQLITE_ROW)  {
                    NSString *imageName= [NSString stringWithUTF8String:(char*)sqlite3_column_text(compiledStatement, 2)];
                    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
                    NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory
                    NSString *filePath = [documentsPath stringByAppendingPathComponent:imageName];

                    NSData *pngData = [NSData dataWithContentsOfFile:filePath];
                    if (pngData == nil) {
                        image2 = [UIImage imageNamed:@"resimYok.jpeg"];//horoda
                    }else{
                        image2 = [UIImage imageWithData:pngData];
                    }
                    image2=[image2 imageByScalingAndCroppingForSize:CGSizeMake(175, 210)];

                    UIButton * urunDetayButton = [UIButton buttonWithType:UIButtonTypeCustom];
                    [urunDetayButton setFrame:CGRectMake(column*197+38 , row*350+58, 159, 170)];
                    [urunDetayButton setImage:image2 forState:UIControlStateNormal];
                    [urunDetayButton addTarget:self
                                        action:@selector(buttonClicked:)
                              forControlEvents:UIControlEventTouchUpInside];
                    urunDetayButton.tag = UrunId;
                    [scrollView addSubview:urunDetayButton];

                    UIImageView *background = [[UIImageView alloc]initWithFrame:CGRectMake(column*197+30, row*350, 175, 280)];
                    UIImage *blackBackGround = [UIImage imageNamed:@"BackImage.png"];
                    [background setImage:blackBackGround];                                            
                    [scrollView addSubview:background];
                    [background release];
                    [blackBackGround release];

                    UIImage *sepeteEkleButtonImage = [UIImage imageNamed:@"sepeteEkleButtonImage.png"];
                    UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
                    [button setFrame:CGRectMake(column*197+38 , row*350+8, 159, 45)];
                    [button setImage:sepeteEkleButtonImage forState:UIControlStateNormal];
                    [button addTarget:self
                               action:@selector(addToChart:)
                     forControlEvents:UIControlEventTouchUpInside];
                    button.tag = UrunId;

                    [sepeteEkleButtonImage release];
                }

このループでは、何千ものボタンを作成します。しかし、いくつかのボタンといくつかのイメージビューの画像を見ることができません。たとえば、「背景」と「ボタン」のイメージビューとボタン。2 つのスクリーンショットがあります。

これは私が欲しいに違いない これが現状です

4

1 に答える 1