似乎无处可寻。我有核心数据,需要加载到选择器视图。怎么做?我认为它需要使用array [String]而不是array [AnyObject]。
var myList : Array<String> = []
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
var appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
var context: NSManagedObjectContext = appDelegate.managedObjectContext!
var request = NSFetchRequest(entityName: "Activity")
var results: Array = context.executeFetchRequest(request, error: nil)!
//???
return myList[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
itemActivityValue = myList[row]
}
答案 0 :(得分:0)
不要在pickerView委托/数据源中进行获取请求。您只需要执行一次获取,并且您将数据存储在视图控制器中,因此您应该在viewDidLoad中执行此操作。
数组类型是NSManagedObject,而不是String。
您无法将NSManagedObject转储到pickerView行中。 NSManagedObjects可能有自己的变量,例如name属性。在titleForRow中,如果您已创建子类NSManagedObject,则希望返回类似return myList[row].name
的内容。
如果没有,你需要做KVC以获取价值。