2013-02-07 8 views
5

Tworzę aplikację CollectionView. gdzie pobieram dane z serwera przez ciąg JSON. a mój przepływu pracy jest następującaProblem w nierozpoznanym selektorze wysłanym do instancji

  1. utworzono kolekcję Zobacz komórkowego jako ProjectVCollectionViewCell.h, .m, .xib.

    Kod .h oznacza -

@interface ProjectCollectionViewCell: UICollectionViewCell
@property (słaby, nonatomic) IBOutlet UIImageView * projectImage;
@property (słaby, nieatomowy) IBOutlet UILabel * projectLabel;
@end

Kod .m jest domyślnym i syntetyzowane powyższe 2 zmienne. i .xib ma Collection Zobacz komórkę z obrazem View i Label (powiązany powyżej klasy z widokiem na zbiór komórek i związanego nazwę identyfikatora jako „projectCell”.

  1. Kod dla jego ViewController zawiera CollectionView, to jak postępować

Kod wewnątrz dla ViewController.m jest

- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section{ 
    return [projectList count]; 
} 
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    ProjectCollectionViewCell *cell = (ProjectCollectionViewCell *)[cv dequeueReusableCellWithReuseIdentifier:@"projectCell" forIndexPath:indexPath];  

    cell.projectLabel.text = @"";//Here i am getting issue 
    //cell.projectLabel.text = [[NSString alloc] initWithString:[[projectList objectAtIndex:indexPath.row] objectForKey:@"albumName"]];   
    return cell; 
} 

w powyższy kod cell.projectlabel daje mi wydać

[UICollectionViewCell projectLabel]: unrecognized selector sent to instance 0x75f0fb0 
2013-02-07 20:08:17.723 Sample[3189:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UICollectionViewCell projectLabel]: unrecognized selector sent to instance 0x75f0fb0' 
*** First throw call stack: 

Wartość komórki jest w porządku. Wyśledziłem, że z NSLog i podpowiedź do kodu również bierze projectLabel po ".". Ale nie jestem w stanie ustawić wartości pola etykiety przez to. Więc proszę, pomóż mi.

+0

Czy zarejestrowałeś stalówkę? –

+0

Tak. jak poniżej poniżej: - [self.projectListView registerClass: [klasa UICollectionViewCell] dlaCellWithReuseIdentifier: @ "projectCell"]; – VarunJi

+0

@Sang Jesteś genialnym człowiekiem. :). Uratowałeś mi życie. Proszę, zrób to jako odpowiedź. Traktuję to jako Rozwiązanie. – VarunJi

Odpowiedz

2

W przypadku tworzenia niestandardowej ProjectCollectionViewCell z ProjectCollectionViewCell.xib należy registerNib w viewDidLoad:

[self.projectListView registerNib:[UINib nibWithNibName:@"ProjectCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"projectCell"]; 

należy zmienić, aby korzystać Storyboard dla zaoszczędzić czas z CollectionView. Nie musisz niczego rejestrować, po prostu wybierz customCell, przeciągnij i upuść wszystko, co chcesz, do komórki CollectionView i przeciągnij IBOutlet: https://github.com/lequysang/testCollectionViewScroll

Powiązane problemy