доступ к основным данным для возврата первого слова в swift

#ios #swift #xcode

#iOS #swift #xcode

Вопрос:

Мне нужна помощь в удалении строки в основных данных

схема:

у меня есть табличное представление, которое заполняется из формы, которая просит пользователя ввести сведения о друге.

Пользователю нужна опция удаления друга из списка. когда пользователь нажимает на строку из табличного представления, мне нужно получить доступ к строке, чтобы получить идентификатор, а затем запросить основные данные для этого идентификатора, а затем удалить его.

Я застрял при доступе к данным, на которые нажимает пользователь, и получении идентификатора

вот как выглядит друг в табличном представлении

 12345 James Bond 19 Male Sydney ICT
  

где 12345 — уникальный номер учащегося

это моя функция для удаления друга из core data

     override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        tableView.delegate = self
        tableView.dataSource = self
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        friends = appDelegate.getFriendInfo()
        
        
        self.tableView.rowHeight = 33.0
        
    }
    
}
  

У меня возникают трудности с получением идентификатора в строке, а затем удалением этой строки из основных данных

Комментарии:

1. Почему вы не делаете friends[indexPath.row].id , чтобы получить идентификатор?

2. потому что, как только я удалю 1, строки в основных данных больше не будут соответствовать идентификатору строки в табличном представлении

3. @JoakimDanielson например, скажем, что мои основные данные равны 1,2,3, а мое табличное представление равно 1,2,3, скажем, я удаляю 2 из основных данных, мой tableview станет 1,2, а не 1,3

4. Это не идентификатор строки (такого понятия не существует), это свойство id объекта Friend с номером строки indexPath.row . И, конечно, это должен быть StudentID вместо id, извините за это.

5. Извините, я не совсем понимаю, что это буквально, когда я впервые использую swift. В состоянии ли вы написать ответ?

Ответ №1:

Извлеките идентификатор из массива, используя заданный indexPath

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let id = friends[indexPath.row].studentID
    let appDelegate = UIApplication.shared.delegate as! AppDelegate 
    appDelegate.removeRecord(id: id)
}