0
안녕하세요, ios 및 프로그래밍 전반에 익숙하지 않습니다.PickerView에서 사용할 데이터베이스 행을 반환하려고 시도합니다.
CoreData 엔티티에서 옵션을로드하는 pickerview를 사용하려고합니다.
잘 모르겠습니다. 지금까지 내가 가지고있는 것이지만 "return output [row]"라는 줄이 맞지 않습니다. 이 작업을 수행하는 방법에 대한 도움을받을 수 있습니까? 감사
//
// storeSelect.swift
// assignment2_18094969
//
// Created by James Duncombe on 25/1/17.
// Copyright © 2017 James Duncombe. All rights reserved.
//
import UIKit
import CoreData
class storeSelect: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
//outlet for the pickerview widget
@IBOutlet weak var picker: UIPickerView!
var output : [StoreTable] = []
//var to store the pickerview data (change this to suit the db later)
//var pickerDataSource = ["Narellan", "Camden", "Campbelltown", "Liverpool", "Parramatta"]; //ignore this atm
override func viewDidLoad() {
super.viewDidLoad()
output = retrieveRows()
self.picker.dataSource = self
self.picker.delegate = self
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return output.count;
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return output[row]
}
func retrieveRows() -> [StoreTable]{
let entityDescription = NSEntityDescription.entity(forEntityName: "StoreTable", in: managedObjectContext)
let request = NSFetchRequest<NSFetchRequestResult>()
request.entity = entityDescription // get the table drinkTable
var storeObjs = [StoreTable]()
do{
try storeObjs = managedObjectContext.fetch(request) as! [StoreTable] }
catch {
//show some error msg
}
return storeObjs;
}
//output variable stores PizzaTable data and displays using the retrieve method
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
해야 우리가
String
유형 인 이름을 가진 가정하자 오류 String으로 표현 형 StoreTable을 변환 할 수 없습니다입니까? –저장 기능이 바로 엔터티입니까? –
예 StoreTable은 엔티티입니다. –