0

我有一个应用程序,我想使用 a 拍照UIImagePickerController,然后将生成的图像粘贴在缩略图视图中。但是,当您退出应用程序时,我想重新显示与用户上次离开时​​相同的缩略图。我的问题有三个:

  1. 在应用程序生命周期之间实现保存和加载图像的最佳方法是什么?

  2. 用户拍照时如何更改默认快门声音?

  3. 如果用户选择,我如何将上述所有设置重置为默认设置?

4

3 回答 3

1

尝试使用核心数据或 NSUserDefault.. 一些链接让你开始:1. http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started 2. http://maniacdev .com/2012/03/tutorial-getting-started-with-core-data-in-ios-5-using-xcode-storyboards/ 3. 一些代码:

//Saving:  
[[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation(image)forKey:key];
//Loading:     
NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:key];
    UIImage* image = [UIImage imageWithData:imageData];
于 2012-11-30T04:15:18.383 回答
0

您可以在委托处做什么,您只需将图像保存在本地(我通常更喜欢 sqlite),当您启动应用程序时,您只需要执行选择查询来检查图像是否存在,如果存在,则只需检查哪个是最新的一个(或你想拿起的案例)。

希望,它会给你工作的想法。

如有任何疑问,请通知我。:)

于 2012-11-30T04:12:48.617 回答
0

您可以将图像数据保存到NSUserDefaults(由其他人提及)或应用程序的沙箱,或者您也可以将图像保存到didFinishPickingMediaWithInfo委托中设备的相机胶卷中,如下所示:

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];  
//Block Request to save the image to camera roll  
[library writeImageToSavedPhotosAlbum:[[info objectForKey:UIImagePickerControllerOriginalImage] CGImage] orientation:(ALAssetOrientation)[[info objectForKey:UIImagePickerControllerOriginalImage] imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){  
    if (error) {  
        NSLog(@"Error saving to Albums");  
    } else {
        NSLog(@"Saved Image Url %@", assetURL);
    }  
}];  
[library release];

然后,委托- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info信息字典对象具有密钥的图像 url,UIImagePickerControllerReferenceURL然后您可以使用它来获取图像,再次使用ALAssetsLibrary。HTH。

于 2012-11-30T04:26:35.817 回答