NSInvalidArgumentException при попытке извлечь объекты основных данных в TableView - PullRequest
1 голос
/ 17 марта 2020

Попытка извлечь объект основных данных в табличное представление и получила исключение Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unacceptable type of value for attribute: property = "seminar"; desired type = NSString; given type = UITextField;

TeacherViewController.m сохранить данные, извлечь и показать их в табличном представлении на TeacherDataViewController.m **

TeacherViewController.h

**

- (IBAction)btnsubmit:(UIButton *)sender {
    NSManagedObjectContext *context = [self managedobjectcontext];
    NSManagedObject *new = [NSEntityDescription insertNewObjectForEntityForName:@"Teacher" inManagedObjectContext:context];
    [new setValue:self.txtseminar forKey:@"seminar"];
    [new setValue:self.txtassignment forKey:@"assignment"];
    NSError *error = nil;
    if (![context save:&error]) {
        NSLog(@"can't save!! %@ %@", error, [error localizedDescription]);
    }
}

**

TeacherDataViewController.m

**

- (void)viewDidLoad {
            [super viewDidLoad];
             myarray = [[NSMutableArray alloc]initWithObjects:([self.lblsemnr.text valueForKey:@"seminar"]), ([self.lblassmnt.text valueForKey:@"assignment"]), nil];
        }
        -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
            return 1;
        }
        -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
        {
            return self.devices.count;
        }
        -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
        {
            static NSString *cellidentifier = @"cell";
            UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellidentifier forIndexPath:indexPath];
            if (cell == nil) {
                cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
            }
            cell.textLabel.text = [myarray objectAtIndex:indexPath.row];
            cell.detailTextLabel.text = [myarray objectAtIndex:indexPath.row];
            return cell;
        }

Не сохраняет никаких данных и выдает вышеупомянутое исключение

1 Ответ

1 голос
/ 17 марта 2020

Похоже, что в приведенной ниже строке вы устанавливаете txtSeminar для семинара. txtSeminar, кажется, TextField, вы должны использовать txtSeminar.text

[new setValue:self.txtseminar forKey:@"seminar"];
...