我有一个程序从程序中获取Core Data
,然后在程序中获取某些内容,它会在我的UITableView
.
现在我的问题是,有时我需要用户向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
aNSString
然后检查类,如果它class type
是一个类,NSString
它不应该尝试设置 cell.weightInput.text
我的问题是 2: 1) 有没有办法启动一个实体,以便我可以将它插入到数组中,然后检查它是否为空,以便稍后我可以验证它if statement
?
如果那是不可能的 2) 我如何NSArray
用可以验证并升级到多个项目的东西来填充,但在有的时候也可以工作ExerciseData
?
我的目标是该人用于- addSet
创建一个新UITableCell
的按钮被按下的次数,然后我需要验证里面的任何内容,以便如果是 aExerciseData entity
并且属性权重设置为填充cell.weightInput.text
或不填充它
- (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];
}
}