写了一个需要从相册中加载精灵的app,思路是调用imagePickerController,把选择的图片存到app的document里,然后再create精灵
但是出现了精灵无法更新的问题。
OC代码:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
NSLog(@"Picker returned successfully.");
NSLog(@"%@", info);
NSString *mediaType = ;
// 判断获取类型:图片
UIImage *theImage =;
NSData* imageData = UIImagePNGRepresentation(theImage);
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString* documentsDirectory = ;
// 获得完整路径
NSString* fullPathToFile = ;
//删除原始文件
NSFileManager *defaultManager;
defaultManager = ;
[defaultManager removeFileAtPath: fullPathToFile
handler: nil];
;
;
//切换场景
Scene* nextScene = PhotoSence::createScene();
TransitionSlideInR*next = TransitionSlideInR::create(0.12f, nextScene);
CCDirector::sharedDirector()->replaceScene(next);
}
```
之后在PhotoSence执行下列代码时
NSArray* _paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString* _documentsDirectory = ;
std::string _path = ;
_path = _path+"/pickImage.png";
photoSprite = cocos2d::CCSprite::create(_path);
photoSprite->setPosition(cocos2d::ccp(Director::sharedDirector()->getWinSize().width/2,Director::sharedDirector()->getWinSize().height/2));
CCLOG(_path.c_str());
addChild(photoSprite,10);
```
程序首次运行正常,但这时我再次调用了一次选择图片的代码,并再次执行了一次 ;
(原来的图片删了)加载出来的精灵还是第一次选择的图片,精灵在执行选择图片代码之前已经通过
photoSprite->removeFromParent();
photoSprite->release();
```
释放
百思不得其解,请问为什么会这样?不是writetofile的时间差问题,我把加载精灵代码定了定时器,五秒后执行还是不可以。