0
我在學校項目的應用程序上工作。該應用程序應管理不同的客戶(使用客戶名稱和電子郵件地址)和任務(使用任務名稱和每小時價格)。 那麼應用程序應該從這些數據創建一個帳單。來自選取器視圖中的核心數據的數據
我的問題是如何從客戶和任務(存儲在覈心數據中)在兩個選擇器視圖中獲取數據?
鏈接到完整的項目:https://drive.google.com/open?id=0Bwwqhrg9CBVfTU50R2dBaF9ZcUk
(對不起,採用德國的變量和函數名:/)
這是資源的任務
//
// ArrayAufgabenResource.swift
// TheServiceAppV2
//
// Created by David Zerweck on 09.04.17.
// Copyright © 2017 David Zerweck. All rights reserved.
//
////////////////////////////////////////////////////
//German = English
//Kunde = Customer
//Aufgabe = Task
////////////////////////////////////////////////////
import Foundation
import CoreData
struct ArrayAufgabeResource: AufgabeResource {
var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "TheServiceAppV2")
container.loadPersistentStores {
(storeDescription, error) in
if let error = error {
let nserror = error as NSError
fatalError("Fehler: \(nserror.localizedDescription)")
}
}
return container
}()
func saveContext() {
let context = persistentContainer.viewContext
if context.hasChanges {
do {
try context.save()
} catch {
let nserror = error as NSError
fatalError("Fehler: \(nserror.localizedDescription)")
}
}
}
func insertAufgabe(withName: String, andPreis: String) -> Aufgabe {
let newAufgabe = NSEntityDescription.insertNewObject(forEntityName: "Aufgabe", into: persistentContainer.viewContext) as! Aufgabe
newAufgabe.nameDerAufgabe = withName
newAufgabe.preisProStunde = andPreis
saveContext()
return newAufgabe
}
func remove(aufgabe: Aufgabe) {
persistentContainer.viewContext.delete(aufgabe)
saveContext()
}
func getList() -> [Aufgabe] {
var aufgaben = [Aufgabe]()
let request: NSFetchRequest<Aufgabe> = Aufgabe.fetchRequest()
do {
aufgaben = try persistentContainer.viewContext.fetch(request)
} catch {
print(error.localizedDescription)
}
return aufgaben
}
}
這是客戶資源
//
// ArrayKundenResource.swift
// TheServiceAppV2
//
// Created by David Zerweck on 09.04.17.
// Copyright © 2017 David Zerweck. All rights reserved.
//
import Foundation
import CoreData
struct ArrayKundeResource: KundeResource {
var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "TheServiceAppV2")
container.loadPersistentStores {
(storeDescription, error) in
if let error = error {
let nserror = error as NSError
fatalError("Fehler: \(nserror.localizedDescription)")
}
}
return container
}()
func saveContext() {
let context = persistentContainer.viewContext
if context.hasChanges {
do {
try context.save()
} catch {
let nserror = error as NSError
fatalError("Fehler: \(nserror.localizedDescription)")
}
}
}
func insertKunde(withName: String, andEmail: String) -> Kunde {
let newKunde = NSEntityDescription.insertNewObject(forEntityName: "Kunde", into: persistentContainer.viewContext) as! Kunde
newKunde.name = withName
newKunde.email = andEmail
saveContext()
return newKunde
}
func remove(kunde: Kunde) {
persistentContainer.viewContext.delete(kunde)
saveContext()
}
func getList() -> [Kunde] {
var kunden = [Kunde]()
let request: NSFetchRequest<Kunde> = Kunde.fetchRequest()
do {
kunden = try persistentContainer.viewContext.fetch(request)
} catch {
print(error.localizedDescription)
}
return kunden
}
}
在下面的ViewCon troller,應該有兩個選擇器的意見。第一個選擇器視圖應顯示客戶。第二個選擇器視圖應顯示任務。
//
// RechnungViewController.swift
// TheServiceAppV2
//
// Created by David Zerweck on 17.05.17.
// Copyright © 2017 David Zerweck. All rights reserved.
//
////////////////////////////////////////////////////
//German = English
//Kunde = Customer
//Aufgabe = Task
//Rechnung = Bill
////////////////////////////////////////////////////
import UIKit
class RechnungViewController: UIViewController {
@IBOutlet weak var pickerViewKunde: UIPickerView!
@IBOutlet weak var pickerViewAufgabe: UIPickerView!
@IBOutlet weak var anzahlStundenField: UITextField! //number of hours
@IBAction func rechnungBtn(_ sender: Any) {
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
我希望有人能幫助我。 我已經在說謝謝你的幫助。