我无法搞清楚NSBundle和DocumentDirectory数据,我有一个相机图片" imageView ",我正在保存NSDocumentDirectoy,然后想要检索它附加到电子邮件,
这里有保存代码:
- (IBAction)saveImage {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
UIImage *image = imageView.image; // imageView is my image from camera
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:savedImagePath atomically:NO];
}
Run Code Online (Sandbox Code Playgroud)
这是新的获取数据代码:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
NSData *myData = [[[NSData alloc] initWithContentsOfFile:appFile] autorelease];
[picker addAttachmentData:myData mimeType:@"image/png" fileName:@"savedImage"];
Run Code Online (Sandbox Code Playgroud) 多年前,当我使用C#时,我可以轻松地创建一个临时文件并使用此函数获取其名称:
Path.GetTempFileName();
Run Code Online (Sandbox Code Playgroud)
此函数将在临时目录中创建具有唯一名称的文件,并返回该文件的完整路径.
在Cocoa API中,我能找到的最接近的是:
NSTemporaryDirectory
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西,还是没有内置的方法来做到这一点?
我正在开发一个应用程序,需要大约100个图像或更多图像以及其他相关信息预先插入到Core Data数据库中.
现在我可以通过编写几行代码轻松添加其他数据但是对于UIImages,我不确定如何在不编写大量代码的情况下执行此操作.我想知道:无论如何要做到这一点很容易,或者如果没有最好的方法以最少的努力实现这一点.
此外,将图像存储在Core Data数据库中是否可以,或者我们是否只保存本地文件系统上的图像地址?
我可以从照片库中选择并显示图像,但我的目标是能够将选择的图像或文件路径保存到核心数据,以便在选择保存的记录时也会显示图像.
我有CoreData工作,我能够从CoreData显示文本很好,它只是图像阻止我.
@IBAction func addPic(sender: AnyObject) {
pickerController.delegate = self
pickerController.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
// 2
self.presentViewController(pickerController, animated: true, completion: nil)
// Displays image
func imagePickerController(picker: UIImagePickerController!,didFinishPickingMediaWithInfo info: NSDictionary!){
image.image = info[UIImagePickerControllerOriginalImage] as? UIImage
self.dismissViewControllerAnimated(true, completion: nil)
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我正在尝试保存和检索核心数据中的图像.我可以在UIimage的约定成功后将图像成功保存到NSData中,但是当我试图将图像作为NSData时,它显示如下给出的输出,
案例1:尝试从DB显示为字符串时.
<Event: 0x5b5d610> (entity: Event; id: 0x5b5ce30 <x-coredata://F51BBF1D-6484-4EB6-8583-147E23D9FF7B/Event/p1> ; data: <fault>)
Run Code Online (Sandbox Code Playgroud)
案例2:尝试显示为数据时
[Event length]: unrecognized selector sent to instance 0x5b3a9c0
2010-07-28 19:11:59.610 IMG_REF[10787:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Event length]: unrecognized selector sent to instance 0x5b3a9c0'
Run Code Online (Sandbox Code Playgroud)
我的代码,
to save:
NSManagedObjectContext *context = [self managedObjectContext];
newsObj = [NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedObjectContext:context];
NSURL *url = [NSURL URLWithString:@"http://www.cimgf.com/images/photo.PNG"];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
uiImage = [UIImage imageWithData:data];
NSData * imageData = UIImagePNGRepresentation(uiImage);
[newsObj setValue:imageData forKey:@"imgPng"];
NSError *error;
@try{ …Run Code Online (Sandbox Code Playgroud)