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
次に、 aに追加してからNSString
クラスを確認しようとしましたが、それclass type
がクラスであった場合はNSString
設定しようと しませんcell.weightInput.text
私の質問は2です:1)エンティティを開始して配列に挿入し、空かどうかを確認して後で検証できるようにする方法はありif statement
ますか?
それが不可能な場合2)NSArray
検証して複数のアイテムにエスカレートできるものを入力するにはどうすればよいExerciseData
ですか?
私の目標は、ボタンが押された回数だけ- addSet
新しいものを作成するために使用することです。その後、内部にあるものを検証する必要があるため、プロパティの重みが設定されているか、そうでない場合は設定されていません。UITableCell
ExerciseData 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];
}
}