我是iOS开发人员的完全初学者,我想创建一个小iOS应用程序.在这个应用程序中,3 UIPickerViews
应该显示不同的数据.
我的问题在于显示屏.我习惯在Android或Windows手机上开发,我不明白如何UIPickerViews
用不同的数据填充.
这是我已编写的代码:
//
// ViewController.swift
// iphoneVersion
//
// Created by fselva on 13/05/2015.
// Copyright (c) 2015 fselva. All rights reserved.
//
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate{
@IBOutlet weak var pickerView1: UIPickerView!
@IBOutlet weak var pickerView2: UIPickerView!
@IBOutlet weak var pickerView3: UIPickerView!
var test = ["Todo","Waiting","Maybe","Inbox","Note"]
var test2 = ["@Office","@Computer","@Home","@Meeting", "@Read", "@Achat", "@Call"]
override func viewDidLoad() {
super.viewDidLoad()
pickerView1.tag = 1
pickerView2.tag = 2
pickerView3.tag = 3
// Do any additional setup after …
Run Code Online (Sandbox Code Playgroud) 我真的不知道我必须解释什么,如果需要,请不要犹豫,问我更多代码或解释。我正在尝试使用 CoreData 来存储从 http POST 请求中获取的数据,然后打印它们在 UITableView 上。
我成功地从 JSON 获取数据并将它们发送到数据库。问题是当我尝试将数据从数据库发送到 UITableView 时。
这是我第一次使用 Core Data,所以为了了解它是如何工作的,我遵循了本教程,我适应了我的情况:https : //www.youtube.com/watch?v=UniafUWsvLg
这是我工作的实体:
import Foundation
import CoreData
class Task: NSManagedObject {
@NSManaged var summary: String
@NSManaged var status: String
@NSManaged var responsable: String
@NSManaged var id: String
@NSManaged var detail: String
@NSManaged var date: String
@NSManaged var context: String
}
Run Code Online (Sandbox Code Playgroud)
这是准备 CoreData 工作的代码的一部分,我对此有一些评论:
//Preparing variables used to get and send datas from DB
let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
var nTask: Task? = …
Run Code Online (Sandbox Code Playgroud) casting core-data uitableview nsfetchedresultscontroller swift
我需要循环进入核心数据来比较两个值,我尝试用for ... in来做.
我正在使用fetchedResultController
我的核心数据创建我的请求:
func getFetchedResultsControllerUser() -> NSFetchedResultsController{
frcu = NSFetchedResultsController(fetchRequest: taskFetchRequestUser(), managedObjectContext: context!, sectionNameKeyPath: nil, cacheName: nil)
return frcu
}
func taskFetchRequestUser() -> NSFetchRequest {
let fetchRequest = NSFetchRequest(entityName: "User")
let sortDescriptor = NSSortDescriptor(key: "name", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
return fetchRequest
}
Run Code Online (Sandbox Code Playgroud)
并在我的cellForRowAtIndexPath
声明我的用户对象:let user = frcu.objectAtIndexPath(indexPath) as! User
这是用户类:
import Foundation
import CoreData
@objc(User)
class User: NSManagedObject {
@NSManaged var id: String
@NSManaged var name: String
@NSManaged var task: NSSet
}
Run Code Online (Sandbox Code Playgroud)
一旦我在那里,我尝试循环用户获取指定的ID:
for …
Run Code Online (Sandbox Code Playgroud) 我有一个由 cellForRowAtIndexPath 填充的 UITableView:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("customTableViewCell") as! UITableViewCell
let task = frc.objectAtIndexPath(indexPath) as! Task
cell.textLabel?.text = task.summary
var detail = task.detail
var context = task.context
var due = task.date
var status = task.status
var responsible = task.responsable
var folder = task.folder
cell.detailTextLabel?.text = "Contexte: \(context), Detail: \(detail), Status: \(status), Ending date: \(due)"
return cell
}
Run Code Online (Sandbox Code Playgroud)
在情节提要上,当单击 tableView 的一个单元格以打开 detailViewController 时,我做了一个 segue
这是我的 didSelectRowAtIndexPath:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: …
Run Code Online (Sandbox Code Playgroud)