标题是我相信自我描述所以我将开始解释我的代码..
这是生成图像的代码..
- (UIImage *) convertDataToImage {
NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"screenshot"];
return [UIImage imageWithData:imageData];
}
如果我这样调用这个方法[(AppDelegate*)[[UIApplication sharedApplication] delegate] sendEmailWithImage:[self convertDataToImage]];
那么一切都很好,除了它的速度..因为我有很多方法需要相同的图像..所以我想只调用一次convertImageToImage
方法..
所以我试过..
.h
UIImage *image;
.m init
image = [self convertDataToImage];
最后
[(AppDelegate*)[[UIApplication sharedApplication] delegate] sendEmailWithImage:image];
似乎就像所有应该工作一样..但是我得到了一个糟糕的访问错误..
我该如何解决这个问题?
提前致谢..
更新:在我的init中,我尝试使用以下代码
CCTexture2D *texture = [[[CCTexture2D alloc] initWithImage:image] autorelease];
CCSprite *sp = [CCSprite spriteWithTexture:texture];
sp.position = ccp(100, 100);
[self addChild:sp];
它正在工作..但是在init之外仍然没有工作.. 我是自动释放纹理,是否也会释放我的图像?
答案 0 :(得分:1)
由于您未在项目中使用ARC,因此retain
UIImage
返回的[self convertDataToImage]
实例应image = [[self convertDataToImage] retain];
:
{{1}}