У меня есть программа, которая извлекает из Core Data
, а затем в программу, если что-то происходит, она отображает результаты в моем UITableView
.как создать экземпляр объекта CD без извлечения
Теперь моя проблема заключается в том, что иногда мне нужен пользователь, чтобы добавить еще один UITableCell
моих UITableView
, но мои tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
подсчетов элементов в моем массиве, который держит свою ExerciseData
сущности.
Я попытался создать объект ExerciseData
, как если бы это был объект, но это не работает и сбой программы. делая
if ([[_ed objectAtIndex:indexPath.row] weight]) {
NSLog(@"%@",_ed);
cell.weightInput.text = [NSString stringWithFormat:@"%@",[[_ed objectAtIndex:indexPath.row] weight]];
}
он бросает ошибку CoreData: error: Failed to call designated initializer on NSManagedObject class 'ExerciseData'
, что заставило меня понять, что я не могу начать CD сущности подобное.
тогда я пытался добавить к NSArray _ed
NSString
, а затем проверить для класса, и если class type
был класс NSString
он не должен пытаться установить cell.weightInput.text
Мой вопрос являются 2: 1) Является ли есть способ инициировать объект, чтобы я мог вставить его в массив, а затем проверить, является ли пустым, чтобы затем я мог проверить его на более позднем if statement
?
, если это не представляется возможным 2) Как я мог заселить NSArray
с чем-то, что может быть одобренным & увеличено до multimple элементов, но и работать, когда есть ExerciseData
?
Моя цель состоит в том, что человек использует - addSet
создать новый UITableCell
столько раз кнопка нажата, то мне нужно, чтобы проверить все, что находится внутри, так что если это ExerciseData entity
и вес свойство устанавливается для заполнения cell.weightInput.text
или иначе Dont заполнить его
- (void) addNewSet {
ExerciseData * newEd = [[ExerciseData alloc] init];
NSMutableArray* ar = [[NSMutableArray alloc]initWithArray:_ed];
[ar addObject:newEd];
_ed = [[NSArray alloc] initWithArray:ar];
[_mytable reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
workoutCell * cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
cell = [[workoutCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
}
cell.weightInput.text = @"";
if (indexPath.row < [_ed count]) {
if (![[[_ed objectAtIndex:indexPath.row] class] isKindOfClass:[NSString class]]) {
NSLog(@"%@",_ed);
cell.weightInput.text = [NSString stringWithFormat:@"%@",[[_ed objectAtIndex:indexPath.row] weight]];
}
}
//...
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if ([_ed count] == 0) {
return 1;
} else {
return [_ed count];
}
}