Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 尝试返回要在PickerView中使用的数据库行_Ios_Swift_Core Data - Fatal编程技术网

Ios 尝试返回要在PickerView中使用的数据库行

Ios 尝试返回要在PickerView中使用的数据库行,ios,swift,core-data,Ios,Swift,Core Data,嗨,我是ios和编程新手 我尝试使用pickerview从CoreData实体加载选项 不知道该怎么做这是我到目前为止所知道的,但是“returnoutput[row]”一行不正确。我能帮忙做这件事吗?谢谢 // // storeSelect.swift // assignment2_18094969 // // Created by James Duncombe on 25/1/17. // Copyright © 2017 James Duncombe. All rights res

嗨,我是ios和编程新手

我尝试使用pickerview从CoreData实体加载选项

不知道该怎么做这是我到目前为止所知道的,但是“returnoutput[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.
    }
    */

}
//
//storeSelect.swift
//转让2_18094969
//
//詹姆斯·邓科姆于2017年1月25日创作。
//版权所有©2017詹姆斯·邓科姆。版权所有。
//
导入UIKit
导入CoreData
类存储选择:UIViewController、UIPickerViewDeleteGate、UIPickerViewDataSource{
让managedObjectContext=(UIApplication.shared.delegate为!AppDelegate)。persistentContainer.viewContext
//pickerview小部件的出口
@IBVAR选择器:UIPickerView!
变量输出:[StoreTable]=[]
//用于存储pickerview数据的var(将其更改为适合以后的db)
//var pickerDataSource=[“Narellan”、“Camden”、“Campbelltown”、“Liverpool”、“Parramatta”];//忽略此atm
重写func viewDidLoad(){
super.viewDidLoad()
输出=retrieveRows()
self.picker.dataSource=self
self.picker.delegate=self
//加载视图后执行任何其他设置。
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
func numberOfComponents(在pickerView:UIPickerView中)->Int{
返回1
}
func pickerView(pickerView:UIPickerView,numberOfRowsInComponent:Int)->Int{
返回output.count;
}
func pickerView(pickerView:UIPickerView,titleForRow行:Int,forComponent组件:Int)->String{
返回输出[行]
}
func retrieveRows()->[StoreTable]{
让entityDescription=NSEntityDescription.entity(在:managedObjectContext中,名为“StoreTable”)
let request=NSFetchRequest()
request.entity=entityDescription//获取可饮用表
var storeObjs=[StoreTable]()
做{
尝试storeObjs=managedObjectContext.fetch(请求)as![StoreTable]}
抓住{
//显示一些错误消息
}
返回storeObjs;
}
//输出变量存储PizzaTable数据,并使用retrieve方法显示
/*
//标记:-导航
//在基于故事板的应用程序中,您通常需要在导航之前做一些准备
覆盖功能准备(对于segue:UIStoryboardSegue,发送方:有吗?){
//使用segue.destinationViewController获取新的视图控制器。
//将选定对象传递给新的视图控制器。
}
*/
}
上述函数应返回一个字符串。不是coredata实体。如果实体StoreTable具有
String
属性,例如,假设其名称为
String
类型,则函数应为

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
   return return output[row].name
}

错误是无法将表达式类型StoreTable转换为字符串?storable是实体,对吗?是StoreTable是实体它的属性是什么?它有名称吗?只有“name”作为属性(字符串)。
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
   return return output[row].name
}