2013-03-19 38 views
0

標題是相信自我描述性,所以我會開始解釋我的代碼..壞訪問-Cocos2D

這是產生圖像的代碼..

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

,它是工作..但外面的init仍然沒有工作.. 我自動釋放質地,它是否也釋放我的形象?

+0

你在項目中使用ARC? – Hejazi 2013-03-19 22:59:31

+0

我不使用弧..我更新了我的問題。 – user1526474 2013-03-19 23:00:55

+0

然後,我認爲你應該保留圖像。 – Hejazi 2013-03-19 23:05:00

回答

1

既然你不要在你的項目中使用ARC,你應該retain[self convertDataToImage]返回UIImage實例:

image = [[self convertDataToImage] retain]; 
+1

另外,你也許應該看看ARC;) – buildsucceeded 2013-03-19 23:08:14

+0

謝謝..工作得很好.. – user1526474 2013-03-19 23:12:45

+1

NA ..我覺得弧有點慢.. – user1526474 2013-03-19 23:13:07