0

タイトルは自己記述的だと思うので、コードの説明を始めます。

これは、画像を生成するコードです。

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

このメソッドをこのように呼び出すと[(AppDelegate*)[[UIApplication sharedApplication] delegate] sendEmailWithImage:[self convertDataToImage]];、速度以外はすべて問題ありません。同じ画像を必要とするメソッドが山ほどあるので、convertImageToImageメソッドを1回だけ呼び出します。

だからやってみた。

.h

UIImage *image;

.m init

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];

そしてそれは機能しています..しかし、外部のinitはまだ機能していません..私はテクスチャを自動解放しています、それは私の画像も解放しますか?

4

1 に答える 1

1

プロジェクトではARCを使用しないためretainUIImageインスタンスは次のように返される必要があり[self convertDataToImage]ます。

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