0

标题是我相信自我描述的,所以我将开始解释我的代码..

这是生成图像的代码..

- (UIImage *) convertDataToImage {
    NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"screenshot"];
    return [UIImage imageWithData:imageData];
}

如果我这样调用这个方法,[(AppDelegate*)[[UIApplication sharedApplication] delegate] sendEmailWithImage:[self convertDataToImage]];那么一切都很好,除了它的速度..因为我有很多需要相同图像的方法..所以我只想调用convertImageToImage一次方法..

所以我尝试了..

。H

UIImage *image;

.m 初始化

image = [self convertDataToImage];

最后

[(AppDelegate*)[[UIApplication sharedApplication] delegate] sendEmailWithImage:image];

似乎一切都应该按原样工作..但我遇到了一个糟糕的访问错误..

我怎样才能解决这个问题?

提前致谢..

更新:在我的初始化中,我尝试使用以下代码

CCTexture2D *texture = [[[CCTexture2D alloc] initWithImage:image] autorelease];

CCSprite *sp = [CCSprite spriteWithTexture:texture];
sp.position = ccp(100, 100);
[self addChild:sp];

它正在工作..但外部初始化仍然无法正常工作..我正在自动释放纹理,它是否也会释放我的图像?

4

1 回答 1

1

由于您没有在项目中使用 ARC,因此您应该返回retainUIImage实例是[self convertDataToImage]

image = [[self convertDataToImage] retain];
于 2013-03-19T23:06:48.293 回答