2012-05-04 23 views
-1

我试图保存和加载从我的应用程序中的相机胶卷拾取的图像。我得到一个错误,当我按下要么加载或保存按钮试图在应用程序错误中保存/加载图像NSInvalidArgumentException

*终止应用程序由于未捕获的异常“NSInvalidArgumentException”,原因是:“ - [UIImageView的CGImage]:无法识别的选择发送到实例0xe637640”

有什么想法吗?

AppDelagate的.m

- (NSURL *)applicationDocumentsDirectory 
{ 
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory i  nDomains:NSUserDomainMask] lastObject]; 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

类Im的.M试图保存/加载图像

- (IBAction)save:(id)sender { 
UIImage *myImage = imageView; 
NSData *data = UIImagePNGRepresentation(myImage); 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *appDocsDirectory = [paths objectAtIndex:0]; 


} 

- (IBAction)load:(id)sender { 
UIImage *myImage = imageView; 
NSData *data = UIImagePNGRepresentation(myImage); 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *appDocsDirectory = [paths objectAtIndex:0]; 
UIImage* thumImage = [UIImage imageWithContentsOfFile: [NSString stringWithFormat:@"%@/%@.png", appDocsDirectory, @"myNewFile"]]; 
} 
+0

我最初的想法是,你没有正确标记问题,你没有包括一个堆栈跟踪。 – trojanfoe

+0

真的很有帮助谢谢 – JSA986

+0

你似乎并不想帮助自己。你的标签是错误的;他们都无关紧要(有人可以纠正他们,但为什么他们呢?)。如果您没有正确标记问题,那么正确的人可能会错过它。在发生异常/崩溃的情况下,为了找出问题所在,必须有堆栈跟踪。所以如果你需要帮助,你需要提供更好的信息。 – trojanfoe

回答

1

此错误意味着消息CGImage被发送到类型的UIImageView的对象,但的UIImageView不回应它。问题是似乎是在

UIImage *myImage = imageView; 

你不写正确实施的ImageView的,所以我不能确切地说,但我认为ImageView的是UIImageView的,这是UIView的子类,且将其分配给UIImage的。尝试

UIImage *myImage = [imageView image]; 

改为。我认为这应该工作))

顺便说一句,为什么你需要第一和第二串代码在-load?他们是不必要的:

- (IBAction)load:(id)sender { 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *appDocsDirectory = [paths objectAtIndex:0]; 
UIImage* thumImage = [UIImage imageWithContentsOfFile: [NSString stringWithFormat:@"%@/%@.png", appDocsDirectory, @"myNewFile"]]; 
} 
+0

谢谢,这已经停止了抛出的异常,并且我已经摆脱了两行冗余代码,感谢您指出并帮助您。现在我只需要让图像保存并加载! – JSA986

相关问题