Введение: Я новичок в вопросах программирования и на пути к изучению языка программирования Swift. Я изучаю книгу и задаю там несколько упражнений / вопросов. Пробовал искать / реализовывать разные методы, но ничего не помогло.
Основной вопрос: По сути, это приложение для хранения некоторых значений для «Книжного магазина» вместе с помощью Core Data. Вот код из ViewController.swift. В настоящее время у меня есть только одна кнопка для добавления новой книги в формате «Моя книга» + «books.count».
import UIKit
import CoreData
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var deleteBook: UIBarButtonItem!
var managedObjectContext: NSManagedObjectContext!
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return loadBooks().count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") else { return UITableViewCell() }
let book: Book = loadBooks()[indexPath.row]
cell.textLabel?.text = book.title
return cell
}
func loadBooks() -> [Book] {
let fetchRequest: NSFetchRequest<Book> = Book.fetchRequest()
var result: [Book] = []
do {
result = try managedObjectContext.fetch(fetchRequest)
} catch {
NSLog("My error: %@", error as NSError)
}
return result
}
@IBOutlet weak var myTableView: UITableView!
override func viewDidLoad() {
let appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
managedObjectContext = appDelegate.persistentContainer.viewContext as NSManagedObjectContext
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBOutlet weak var addNew: UIBarButtonItem!
@IBAction func addNew(_ sender: Any) {
let book: Book = NSEntityDescription.insertNewObject(forEntityName: "Book", into: managedObjectContext) as! Book
book.title = "My Book" + String(loadBooks().count)
do {
try managedObjectContext.save()
} catch let error as NSError {
NSLog("My Error: %@", error)
}
myTableView.reloadData()
}
@IBAction func deleteBook(_ sender: Any) {
}
}
Итак, вот пара упражнений, которые я пытаюсь выполнить:
- Добавление в приложение нового представления, позволяющего пользователю вводить название книги
- Укажите способ удаления книги из списка