#ios #ios4 #uitableview #properties
#iOS #ios4 #uitableview #свойства
Вопрос:
Я создал пользовательскую ячейку с помощью 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;
В моей личной ячейке.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: ошибка: тип аргумента setter ‘-thumbnailImage’ не соответствует типу свойства PersonCell.h: 28: ошибка: тип аргумента setter ‘-nameLabel’ не соответствует типу свойства PersonCell.h: 28: ошибка: тип аргумента setter ‘-addressLabelStreet’ не соответствует типу свойства PersonCell.h: 28: ошибка: тип аргумента setter ‘-addressLabelCityAndStateWithZip’ не соответствует типу свойства
Ответ №1:
Похоже, вы определили параметры, поэтому вы не можете использовать свойства / синтезировать.
Если вы делаете что-то пользовательское с установщиками, создайте новое имя метода, например
- (недействительно) MyCustomNameForHandlingAddresses
Ответ №2:
Вы уже использовали свойство для getter и setter, так зачем использовать метод пользовательского набора, просто используйте: nameLabel.text=@»Некоторый текст» в реализации, где вам нужно.