Проблема с загрузкой изображения в виде таблицы

#iphone #objective-c

#iPhone #objective-c

Вопрос:

Я использую пользовательский TableView с контроллером ячеек.Я загружаю контроллер ячейки из другого файла nib.Вот код интерфейса :

 #import <UIKit/UIKit.h>


@interface BeginingCell : UITableViewCell {

    IBOutlet UILabel *SectionTitle;
    IBOutlet UILabel *Option1;
    IBOutlet UILabel *Option2;
    IBOutlet UILabel *Opiton3;
    IBOutlet UILabel *Opiton4;

    IBOutlet UIButton *button1;
    IBOutlet UIButton *button2;
    IBOutlet UIButton *button3;
    IBOutlet UIButton *button4;


    IBOutlet UIButton *ansBtn1;
    IBOutlet UIButton *ansBtn2;
    IBOutlet UIButton *ansBtn3;
    IBOutlet UIButton *ansBtn4;


    IBOutlet UIImageView *myImageView; //Here it is


    NSMutableArray *myArray;


}

///Properties
@property(nonatomic,retain)IBOutlet UILabel *SectionTitle;

@property(nonatomic,retain)IBOutlet UILabel *Option1;
@property(nonatomic,retain)IBOutlet UILabel *Option2;
@property(nonatomic,retain)IBOutlet UILabel *Option3;
@property(nonatomic,retain)IBOutlet UILabel *Option4;


@property(nonatomic,retain)IBOutlet UIButton *button1;
@property(nonatomic,retain)IBOutlet UIButton *button2;
@property(nonatomic,retain)IBOutlet UIButton *button3;
@property(nonatomic,retain)IBOutlet UIButton *button4;


@property(nonatomic,retain)IBOutlet UIButton *ansBtn1;
@property(nonatomic,retain)IBOutlet UIButton *ansBtn2;
@property(nonatomic,retain)IBOutlet UIButton *ansBtn3;
@property(nonatomic,retain)IBOutlet UIButton *ansBtn4;

@property(nonatomic,retain)IBOutlet UIImageView *myImageView; //Here it is


@property(nonatomic,retain)NSMutableArray *myArray;


@end




And the implementation is like :

#import "BeginingCell.h"


@implementation BeginingCell

@synthesize SectionTitle,Option1,Option2,Option3,Option4,button1,
button2,button3,button4,myArray,myImageView,ansBtn1,ansBtn2,ansBtn3,ansBtn4;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {

    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code.
    }
    return self;
}


- (void)setSelected:(BOOL)selected animated:(BOOL)animated {

    [super setSelected:selected animated:animated];

    // Configure the view for the selected state.
}


- (void)dealloc {
    [super dealloc];
}


@end
  

Я загружаю файл Cell Controller nib в свой TableView.Код представления таблицы выглядит следующим образом.Но проблема в том, что мое изображение не загружается.Это разрушение.


Я синтезировал следующим образом.


 @synthesize MyTestArray,listOfItems,MyObject,selectedCountry,QuestionMutableArray,
Manipulatorobj,dictionary,SectionTitle,Option1,Option2,Option3,Option4,ansBtn1,ansBtn2,ansBtn3,ansBtn4;



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    dictionary = [QuestionMutableArray objectAtIndex:0];

    static NSString *CellIdentifier = @"BeginingCell";

    BeginingCell *cell=(BeginingCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

        NSArray *topLevelObjects=[[NSBundle mainBundle] loadNibNamed:@"BeginingCell" owner:self options:nil ];

        for(id CurrentObject in topLevelObjects)
        {
            if ([CurrentObject isKindOfClass:[BeginingCell class]]) {

                cell=(BeginingCell *) CurrentObject;
                break;
            }
        }
    }

    // Configure the cell.

    if(indexPath.row==0)
    {

        cell.SectionTitle.text=[dictionary objectForKey:@"question"];
        cell.Option1.text=[dictionary objectForKey:@"option1"];
        cell.Option2.text=[dictionary objectForKey:@"option2"];
        cell.Option3.text=[dictionary objectForKey:@"option3"];
        cell.Option4.text=[dictionary objectForKey:@"option4"];



        [cell.button1 setTitle:@"A." forState:UIControlStateNormal];
        [cell.button2 setTitle:@"B." forState:UIControlStateNormal];
        [cell.button3 setTitle:@"C." forState:UIControlStateNormal];
        [cell.button4 setTitle:@"D." forState:UIControlStateNormal];
        [cell.button4 setTitle:@"D." forState:UIControlStateNormal];

        [MyTestArray release];


    //  [cell.ansBtn1 setTitle:@"A." forState:UIControlStateNormal];

    }

//---Setting the image here---

UIImage *imgDef=[UIImage imageNamed:@"man_kirstie_alley.jpg"]; //It's crushing here
cell.image = imgDef;


    return cell;

}
  

Есть идеи, что здесь происходит не так?

Ответ №1:

Я думаю, это потому, что в image ячейке uitableviewcell объекта отсутствует свойство, а также у вас нет имени переменной image типа UIImage в вашем BeginingCell классе.

Итак, я думаю, что вам нужно сделать либо

 cell.imageView.image = [UIImage imageNamed:@"man_kirstie_alley.jpg"];
  

или

 cell. myImageView.image = [UIImage imageNamed:@"man_kirstie_alley.jpg"];
  

предполагая, что вы не допустили ошибки при вставке своего кода сюда

Комментарии:

1. ячейка. myImageView.image = [UIImage imageNamed:@»man_kirstie_alley.jpg «]; После использования приведенного выше кода я получаю следующее исключение …-[BeginingCell myImageView]: нераспознанный селектор, отправленный экземпляру 0x4b82cf0 2011-04-13 17:17:07.784 SC.Pandit[5626:207] *** Завершение работы приложения из-за неперехваченного исключения ‘NSInvalidArgumentException’, причина: ‘-[BeginingCell myImageView]: нераспознанный селектор, отправленный экземпляру 0x4b82cf0 ‘

2. Но у вас есть переменная myImageView типа ImageView , верно?

Ответ №2:

Это может быть проблема с вашим наконечником.

установите точку останова и проверьте значение ячейки, действительно ли оно обладает свойствами, которые вы синтезировали.

Я рекомендую вам создавать свои представления с проблемами в вашем подклассе. вместо того, чтобы использовать перо, также вам необходимо освободить любое сохраненное свойство в функции dealloc вашего подкласса