Я создал пользовательский класс для EmployeeInfo:NSMutableArray не сохраняя данные
@interface METEmployee : NSObject
@property (weak, nonatomic) NSString *EmpNo;
@property (weak, nonatomic) NSString *FirstName;
@property (weak, nonatomic) NSString *MiddleName;
@property (weak, nonatomic) NSString *LastName;
@property (weak, nonatomic) NSString *Department;
@property (weak, nonatomic) NSString *HireDate;
@property (weak, nonatomic) NSString *JobTitle;
@property (weak, nonatomic) NSString *SupervisorNumber;
@property (weak, nonatomic) NSString *SupLastName;
@property (weak, nonatomic) NSString *SupFirstName;
@property (weak, nonatomic) NSString *MobilePhone;
@property (weak, nonatomic) NSString *EmailAddress;
@property (weak, nonatomic) NSString *DeskPhone;
@property (weak, nonatomic) NSString *EmployeeType;
@property (weak, nonatomic) NSString *Location;
@end
Тогда на мой взгляд controller.h я создал:
NSMutableArray *theemplyees;
@property(nonatomic, retain) NSMutableArray *theemplyees;
Synthesize является .m:
@synthesize theemplyees
Затем в ViewDidLoad инициируйте и вызовите, чтобы заполнить его:
theemplyees = [[NSMutableArray alloc] init];
[self getEmps];
В getEmps, добавить записи в массив:
results = [database executeQuery:@"select * from EmpInfo order by LastName"];
while([results next]) {
METEmployee *empInfo = [METEmployee alloc];
empInfo.EmpNo = [results stringForColumn:@"EmpNo"];
empInfo.FirstName = [results stringForColumn:@"FirstName"];
empInfo.MiddleName = [results stringForColumn:@"MiddleName"];
empInfo.LastName = [results stringForColumn:@"LastName"];
empInfo.Department = [results stringForColumn:@"Department"];
empInfo.HireDate = [results stringForColumn:@"HireDate"];
empInfo.JobTitle = [results stringForColumn:@"JobTitle"];
empInfo.SupervisorNumber = [results stringForColumn:@"SupervisorNumber"];
empInfo.SupFirstName = [results stringForColumn:@"SupFirstName"];
empInfo.SupLastName = [results stringForColumn:@"SupLastName"];
empInfo.MobilePhone = [results stringForColumn:@"MobilePhone"];
empInfo.EmailAddress = [results stringForColumn:@"EmailAddress"];
empInfo.DeskPhone = [results stringForColumn:@"DeskPhone"];
empInfo.EmployeeType = [results stringForColumn:@"EmployeeType"];
empInfo.Location = [results stringForColumn:@"Location"];
[theemplyees addObject:empInfo];
}
Все отлично работает для заполнения таблицы для первого экрана полных записей:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
METEmpTableViewCell *cell = (METEmpTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"myCell"];
cell.lblFirstName.text = [[theemplyees objectAtIndex:indexPath.row] valueForKey:@"FirstName"];
cell.lblLastName.text = [[theemplyees objectAtIndex:indexPath.row] valueForKey:@"LastName"];
cell.lblDepartment.text = [[theemplyees objectAtIndex:indexPath.row] valueForKey:@"Department"];
NSString* picName = [NSString stringWithFormat:@"%@.jpg", [[theemplyees objectAtIndex:indexPath.row] valueForKey:@"EmpNo"]];
@try {
cell.empPicture.image = [UIImage imageNamed:picName];
}
@catch (NSException *exception) {
}
@finally {
}
return cell;
}
Но если я попытаюсь прокрутить вверх или вниз по Tableview, массив говорит, что данные имеют нулевое значение ... хотя он все еще показывает количество записей. Если я изменил размер моей ячейки pn на меньшую, она заполнит больше строк (которые будут видны), но еще раз прокрутка, и они исчезнут.
Любые мысли или предложения приветствуются. Заранее спасибо за любую помощь!
Geo ...
Помимо того, что все ваши свойства слабы нет ясной причины, вы забываете инициализировать после выделения. – Chuck
Вау, спасибо за пометку Чак. Заставляет меня хотеть задать больше вопросов. – George
Ничего себе. Я никогда не видел, чтобы кто-то так плохо реагировал на то, чтобы дать хороший совет. У вас создается впечатление, что я получаю от вас больше вопросов? Потому что, действительно, вы пришли за советом, и я дал его - просто потому, что это было полезно, но не потому, что я отчаянно надеюсь, что вы зададите больше вопросов в будущем. – Chuck