Как перенести сильную переменную id в переменную UIImage? - PullRequest
0 голосов
/ 08 января 2012

У меня есть переменная

@property (strong, nonatomic) id dataObject;

Это указатель на UIImage.Я хочу отправить его в мою новую переменную.

@property (nonatomic, retain) UIImage *theImage;

Когда я пытаюсь это сделать, приложение вылетает с этой ошибкой: unrecognized selector sent to instance 0x68423b0

Как мне отправить его в мою новуюпеременная?Заранее спасибо.

contentViewController.h:

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "pageAppViewController.h"

@class pageAppViewController;

@interface ViewController : UIViewController

{
    NSArray *content;
    UIImageView *theImageView;
    UIImage *theImage;
}

@property (strong, nonatomic) IBOutlet UIImageView *theImageView;
@property (strong, nonatomic) id dataObject;
@property (nonatomic, retain) UIImage *theImage;

@end

contentViewController.m:

#import "ViewController.h"
#import "pageAppViewController.h"

@implementation ViewController

@synthesize theImageView, dataObject;
@synthesize theImage;


- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    //this is the line that is causing the problems.
    theImage = dataObject;
    theImageView = [[UIImageView alloc] initWithImage: theImage];

    [self.view addSubview:theImageView];   
}
@end

Ответы [ 2 ]

0 голосов
/ 08 января 2012

Почему бы просто не установить его в UIImage вместо id в вашем интерфейсе, Почему (id)?

@property (strong, nonatomic) UIImage *dataObject;

Являются ли изображения типа NSData?

0 голосов
/ 08 января 2012

Когда у вас есть свойство, определенное как id, оно сообщает компилятору, что это может быть объект любого типа.Если вы сейчас хотите присвоить этот объект известному типу и уверены, что объект, стоящий за id, того же типа, вы можете просто привести его.

Пример

id someObject = [UIImage imageNamed:@"x.png"];

UIImage *myImage = (UIImage*) someObject;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...