Загрузка данных в UITableViewCell с пользовательской Xib - PullRequest
0 голосов
/ 19 апреля 2011

Я создал пользовательскую ячейку с IB

В моем интерфейсе у меня есть 3 UILabels и UIImageView.

Я подключил все розетки и затем вернулся в свой контроллер, у меня есть следующеекод

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    static NSString* MyIndenifier = @"MyCell";
PersonCell* cell = (PersonCell*)[tableView dequeueReusableCellWithIdentifier:MyIndenifier];
if (cell == nil) {
    NSArray* nib = [[NSBundle mainBundle] loadNibNamed:@"PersonCell" owner:self options:nil];
    cell = (PersonCell *)[nib objectAtIndex:0];
    cell.nameLabel.text = [[mutablePeopleArray objectAtIndex:indexPath.row] getContactName];
}

return cell;

В моем PersonCell.h у меня есть следующее в файле .h

#import <UIKit/UIKit.h>


@interface PersonCell : UITableViewCell {
IBOutlet    UILabel*        nameLabel;
IBOutlet    UIImageView*    thumbnailImage;
IBOutlet    UILabel*        addressLabelStreet;
IBOutlet    UILabel*        addressLabelCityAndStateWithZip;
}

- (void)setNameLabel:(NSString *)paramNameText;
- (void)setThumbnailImage:(UIImage *)paramImage;
- (void)setAddressLabel:(NSString *)paramAddress;

@property (nonatomic, retain) UILabel* nameLabel;
@property (nonatomic, retain) UILabel* addressLabelStreet;
@property (nonatomic, retain) UILabel* addressLabelCityAndStateWithZip;
@property (nonatomic, retain) UIImageView* thumbnailImage;

@end

}

Я получаю следующие ошибки

PersonCell.h: 28: тип аргумента error: setter '-thumbnailImage' не соответствует типу свойства PersonCell.h: 28: тип аргумента error: setter '-nameLabel' не соответствует типу свойства PersonCell.h: 28: error: setterТип аргумента '-addressLabelStreet' не соответствует типу свойства PersonCell.h: 28: error: setter Тип аргумента '-addressLabelCityAndStateWithZip' не соответствует типу свойства

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

Похоже, вы определили сеттеры, поэтому вы не можете использовать свойства / синтезировать.

Если вы делаете что-то нестандартное с сеттерами, создайте новое имя метода, например

  • (void) MyCustomNameForHandlingAddresses
1 голос
/ 20 апреля 2011

Вы уже использовали свойство для gettter и setter, поэтому зачем использовать пользовательский метод set, просто используйте: nameLabel.text = @ "Некоторый текст" в реализации, где вам нужно.

...