所以我为我的Multimedia Major创建了一个相机应用程序,我在我的VSViewController.m'中遇到了这个错误。文件;
self.image.image = _image;
"'不兼容的指针类型分配给' UIImage *'来自' UIImageView *'"
感谢任何帮助!
(以下是其中的代码块)
#import "VSViewController.h"
@interface VSViewController ()
@end
@implementation VSViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Image Picker Delegate
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
self.image.image = _image.image;
[picker dismissViewControllerAnimated:YES completion:nil];
}
答案 0 :(得分:1)
请考虑以下代码。
func test() {
var image = UIImage(named: "default.png") // UIImage
var imageView = UIImageView() // UIImageView
image = imageView.image // assigns image (UIImage) to imageView.image (UIImage)
}
您必须为图片指定UIImage
,而不是UIImageView
。使用UIImageView
的{{1}}属性来获取兼容的指针类型。
答案 1 :(得分:0)
好的,现在我们知道你在做什么,看起来你应该从imagePicker的字典中提取图像,如下所示:
self.image.image = [info objectForKey:UIImagePickerControllerOriginalImage];
假设self.image
是UIImageView
,但我建议再提出更好的名字。
答案 2 :(得分:0)
在我第一次盲目尝试时遇到同样的错误后,我遇到了两种解决此错误的方法。
一个是使用我的UIImageView的ivar / property的image属性,正如Brian上面提到的那样。但是当我这样做时,我发现我不得不经常调用这个图像属性及其UIImageView属性/变量,就像我在调用:class MyLess{
public:
MyLess(const int* p) {p_ = p;}
bool operator()(const int &lhs, const int &rhs) const { return p_[lhs] < p_[rhs]; }
private:
const int* p_;
};
...
std::priority_queue<int, vector<int>, MyLess> PQ(P);
而不仅仅是self.UIImageViewiVar.image
。
另一种方法是通过self.UIImageViewiVar
方法,如下所示:
initWithImage:
此后你可以调用self.UIImageViewiVar。
希望这有助于某人。