'不兼容的指针类型从'UIImageView *'分配'UIImage *'?请帮忙

时间:2014-06-14 03:01:03

标签: objective-c ios7 uiimageview uiimage xcode5

所以我为我的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];

}

3 个答案:

答案 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.imageUIImageView,但我建议再提出更好的名字。

答案 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。

希望这有助于某人。