将导入的照片保存在 xcode 项目中

Posted

技术标签:

【中文标题】将导入的照片保存在 xcode 项目中【英文标题】:save imported photo within in xcode project 【发布时间】:2012-05-01 18:32:59 【问题描述】:

我对模型和保存数据仍然有些困惑,也许有人可以帮助我。我有一个页面,用户可以在其中从相机胶卷导入照片。当我转到下一页时,它又消失了。我可以将文本数据保存在文本框中的 NString 中,但我不确定如何使用图像执行此操作。图像显示在 UI webview 中。

xcode 4.3

    UIImagePickerController * picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;

    if((UIButton *) sender == choosePhotoBtn) 
        picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    

    [self presentModalViewController:picker animated:YES];




- (void)imagePickerController:(UIImagePickerController *)picker        didFinishPickingMediaWithInfo:(NSDictionary *)info 
    [picker dismissModalViewControllerAnimated:YES];
    imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

【问题讨论】:

【参考方案1】:

首先尝试发布一些你的问题的代码。它让我们更好地帮助你。

好吧,从我推测的问题是,当您推送到新视图时,您正在丢失图像。好吧,我遇到了这个问题,我使用 Singleton Class 解决了它。它有点创建全局元素,你可以存储你喜欢保存的值。包括图像,类对象(你命名)

你可以保存尽可能多的值,你甚至不必将它存储在你的库中。

尝试在 Internet 上阅读 Singleton Classes,我相信我们的好朋友 Google 一定会帮助你

已编辑 -------- 关于 SINGLETON

好的,因为您已经阅读过有关 Singleton 的信息。你可能已经注意到为什么我们使用单例类,单例的主要目的是保存全局变量,但你知道你不知道。!!!所以关于你的问题,当你选择一个图像(从相机或照片库)时,它会返回给你一个 UIImage 的对象。

你必须有一个单例类,比如

#import <Foundation/Foundation.h>

@interface Singleton : NSObject


        //Global  Variables

        //UImage Instance that will Store The Image From Picker
        UIImage *photoPicked;    


//Getter And Setter
@property (nonatomic,retain)  UIImage *photoPicked ;

//Shared SIngleton CLass
+(Singleton*)sharedSingletonController;
@end

M 文件看起来像这样

#import "Singleton.h"

@implementation Singleton
@synthesize imagePicked;

//Class Function For SingleTon

+(Singleton*)sharedSingletonController

    static Singleton *sharedSingleton;

    @synchronized(self) 
        if(!sharedSingleton)
            sharedSingleton = [[Singleton alloc]init];
        
    

    return sharedSingleton;


//I don't want a re-initialization for these variables
-(id)init
    self = [super init];
    if (self != nil) 


        
    return self;




@end

现在你要做的就是在想要使用单例 Image 变量的类中调用 sharedSingletonController 函数,并且不要忘记创建单例类的对象

类似的东西

Singleton *yourSingletonObj = [Singleton sharedSingletonController];

现在你可以将你的图像存储在单例中

yourSingletonObj.image = (YOUR IMAGE FROM PICKER);

现在图像将保存在您的 Singleton 对象中。因此,当它不会丢失并且您可以在任何时候和任何您喜欢的课程中使用它时

干杯 让我知道它是否有效 W

【讨论】:

已发布代码,正在研究单例类,如果我理解了会反馈,感谢您的建议 好的,我已经阅读了单例课程,但仍然没有进一步前进,我要做的就是在我离开视图时阻止照片消失。你说你有这个问题并解决了,也许你会用新的程序员术语来详细说明? 再次感谢您的帮助,我创建了单例类,了解使用该类存储全局变量背后的原理,并且感谢您的帮助,我快到了。我不明白单例对象部分Singleton *yourSingletonObj = [Singleton sharedSingletonController];yourSingletonObj.image = (YOUR IMAGE FROM PICKER); 我不断收到错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[UIImageView _isResizable]:我在哪里添加这个?我想保存图像的 tpage 的单例类或类,我都尝试过并得到错误 还有什么是单例类的对象? 好的,你在其中拾取图像的类将具有单例对象。只是要确定。在该类的 h 文件中创建单例对象。并且在视图中加载调用它就像 yourSingletonObj = [Singleton sharedSingletonController];当你拿起你的图像时,将它保存在 yourSingletonObj.imagePidked 中(对不起,我犯了一个错误)

以上是关于将导入的照片保存在 xcode 项目中的主要内容,如果未能解决你的问题,请参考以下文章

当我将照片从照片库保存到文档时,当我阅读它时它是空白的

如何在 xCode 中保存 UIimages 数组(swift)

删除我项目中的照片

在 XCode 5 中将项目导入远程 SVN 服务器

ALAsset Library 减小图像的大小,同时将其保存在照片库中

Xcode 缓存目录