Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 图像不';即使我得到确认,我也不会得救_Ios_If Statement_Uiimagepickercontroller_Nsuserdefaults_Nsdata - Fatal编程技术网

Ios 图像不';即使我得到确认,我也不会得救

Ios 图像不';即使我得到确认,我也不会得救,ios,if-statement,uiimagepickercontroller,nsuserdefaults,nsdata,Ios,If Statement,Uiimagepickercontroller,Nsuserdefaults,Nsdata,它是这样工作的,所以如果有人有类似的问题,你可以这样做 下面是我在ApplicationIDFinishLaunching中输入的内容 if ([[NSUserDefaults standardUserDefaults] objectForKey:@"image"] == nil) { picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePicke

它是这样工作的,所以如果有人有类似的问题,你可以这样做

下面是我在ApplicationIDFinishLaunching中输入的内容

if ([[NSUserDefaults standardUserDefaults] objectForKey:@"image"] == nil) { 
picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:picker animated:YES];

 }
这是我在报纸上写的

(void)imagePickerController:(UIImagePickerController *) Picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

NSData *imageData;
UIImage *yourUIImage;
imageData = [NSKeyedArchiver archivedDataWithRootObject:yourUIImage];
[[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"image"];
yourUIImage = [info objectForKey:UIImagePickerControllerOriginalImage];
[self dismissModalViewControllerAnimated:YES];}

您正在序列化(存档)未初始化的变量。变量
yourUIImage
已声明,但您从未为其赋值。然后你试着把它归档。如果你幸运的话,
yourUIImage
就是
nil
,但是如果你不幸运的话,它会因为统一化的垃圾指针而崩溃。

这听起来可能很愚蠢,但是你在设置完你的对象后调用了
[[NSUserDefaults standardUserDefaults]synchronize]
谢谢,我刚刚注意到自己。这就是为什么我添加了这个代码段UIImage*yourUIImage=[yourUIImage valueForKey:UIImagePickerControllerOriginalImage];我以为这会奏效,但事实并非如此。呃,想一想这句话。你定义了
yourUIImage
,然后立即再次阅读它(
[yourUIImage valueForKey:
),而没有先将它设置为有意义的内容。我只是刚开始编程,所以有时在我做错了什么的时候,我不会马上理解它。我想这就是我如何将其分配给必须保存的图像的方法。但是我把它删掉了。我只是想知道如何将它分配给图像,对吗?是的,你真正想做的是实现委托方法,然后在那里查询并保存图像。在你想让它现在做的时候,选择器甚至还没有显示在屏幕上。我编辑了它,并根据链接的注释做了它(谢谢)。他似乎仍然没有保存图像。。。