Iphone 如何释放那些未分配的对象的内存?

Iphone 如何释放那些未分配的对象的内存?,iphone,objective-c,ios4,memory-management,memory-leaks,Iphone,Objective C,Ios4,Memory Management,Memory Leaks,我已初始化图像,如: NSString *url=[NSString stringWithFormat:@"url/%@",[self.urlOfImagesToDownload objectAtIndex:i]]; UIImage *myImage=[[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString: url]]]; NSLog(@"%d byte of dat

我已初始化图像,如:

    NSString *url=[NSString stringWithFormat:@"url/%@",[self.urlOfImagesToDownload objectAtIndex:i]];
    UIImage *myImage=[[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString: url]]];
    NSLog(@"%d byte of data", [[NSData dataWithContentsOfURL: [NSURL URLWithString: url]] length]); 

    if (myImage)
    {
        NSString *jpegFilePath = [NSString stringWithFormat:@"%@/%@.jpg",[self pathForDocumentDirectory],[self.idOfImagesToDownload objectAtIndex:i]];
        NSData *data1 = [NSData dataWithData:UIImageJPEGRepresentation(myImage, 1.0f)];//1.0f = 100% quality
        [data1 writeToFile:jpegFilePath atomically:YES];
    }
现在如何释放
NSString*jpegFilePath
NSData*data1

如果我有一个方法:

    -(void) changeImageSlide{
     totalNoOfImages=[copyOf_myGlobleArrayOfImageIds count];
        if (imageCounter>=totalNoOfImages-1) {
            imageCounter=0;
        }
        NSString *str = [NSString stringWithFormat:@"%@.jpg",[copyOf_myGlobleArrayOfImageIds objectAtIndex:imageCounter]];
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *fullImgNm=[documentsDirectory stringByAppendingPathComponent:[NSString stringWithString:str]];
        //=(3*imageCounter+4)%25;
UIImage *img=[UIImage imageWithContentsOfFile:fullImgNm];
        [mainSlideShowImageView setImage:img];
        [mainSlideShowImageView setTag:[[copyOf_myGlobleArrayOfImageIds objectAtIndex:imageCounter] intValue]];     
        imageCounter++;

    }
它是用定时器调用的(用于实现幻灯片放映),我如何在这一个中释放内存,从
UIImage*img
NSString*FullImageName


此外,如何确保在另一个图像加载到
imageView
后,上一个图像已从内存中释放?

您询问的每个对象都不需要在自动释放时显式释放它们。可以看出它们是自动释放的对象,因为设置对象的方法不是以“alloc”、“new”、“copy”或“mutableCopy”开头的。你也没有保留任何一个

我建议您通读《内存管理编程指南》。它将帮助您了解在为iOS开发时如何管理内存


这两种方法都不需要为您提到的变量释放内存,因为它们使用提供自动释放实例的类方法

但是

您将在方法1中泄漏

UIImage*myImage=[[UIImage alloc]initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]

因为在那里你初始化了对象,从而获得了所有权。您需要在方法的末尾发布这个