Я пытаюсь создать пользовательский UITableViewCells, следуя этой статье . Я добавляю розетки для трех полей в ячейке. Я беру данные, хранящиеся в NSMutableArray, и помещаю их в метки пользовательских ячеек. При отладке я вижу данные в элементах исходного массива, но это в метках ячеек: «переменная не является CFArray». Очевидно, это не работает ... вот код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"--> cellForRowAtIndexPath");
static NSString *CellIdentifier = @"siteTableCell";
SiteListingsCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[SiteListingsCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
// Configure the cell...
cell.staLabel.text = [self.staLabels objectAtIndex: [indexPath row]];
cell.descLabel.text = [self.descLabels objectAtIndex:[indexPath row]];
cell.dateLabel.text = [self.dateLabels objectAtIndex:[indexPath row]];
return cell;
}
Это определение метки:
@interface SiteListingsCell : UITableViewCell {
}
@property (nonatomic, strong) IBOutlet UILabel *staLabel;
@property (nonatomic, strong) IBOutlet UILabel *descLabel;
@property (nonatomic, strong) IBOutlet UILabel *dateLabel;
@end
Это определение sArray:
@interface sArray : NSObject { // class (struct) to hold site information
}
@property (nonatomic, readwrite) NSString *sSiteID;
@property (nonatomic, readwrite) NSString *sInitialSTA;
@property (nonatomic, readwrite) NSString *sElev;
@property (nonatomic, readwrite) NSString *sJobDesc;
@property (nonatomic, readwrite) NSString *sJobDate;
@end
ОБНОВЛЕНИЕ: этот код вызывается, когда я хочу заполнить sArray и переместить значения в пользовательские метки ячеек:
- (void) displaySites {
NSLog(@"displaySites");
// get list of sites and place them in sArray
slSQLite *dbCode = [[slSQLite alloc] init];
[dbCode getListOfSites];
// put site data into array for display
NSLog(@"\n2-The array listOfSites contains %d items", dbCode.listOfSites.count);
// sArray *sa = [[sArray alloc] init]; // initialize sArray object
for(int i = 0; i <dbCode.listOfSites.count; i++) {
sArray *sa = [dbCode.listOfSites objectAtIndex:i]; // get the sArray out of listOfSites
staLabels = sa.sSiteID;
descLabels = sa.sJobDesc;
dateLabels = sa.sJobDate;
}
return;
}
Как мне исправить это, чтобы оно работало?