2016-11-11 8 views
2

ラベルの "表示"を押すと、コアデータを使用して保存されたデータ(文字列の方が望ましい)を印刷するアプリケーションをどのように取得するのか知りたかったのです。ラベルのスウィフト表示コアデータ

ありがとうございました。

ここに私の挿入機能のコードがあります。それは 'display'という名前のラベルに置くとどうなりますか?

@IBAction func insertStudent(_ sender: AnyObject) { 
    let context = getContext() 
    let entityDescription = NSEntityDescription.entity(forEntityName: "Contacts", in: context) 

    let contact = NSManagedObject(entity: entityDescription!, insertInto: context) as! Contacts 

    contact.name = name.text 
    contact.address1 = address1.text 
    contact.address2 = address2.text 
    contact.city = city.text 
    contact.grade = grade.text 
    contact.state = state.text 
    contact.zip = zip.text 

    var error: NSError? 

    //save the object 
    do { 
     try context.save() 
     status.text = ("saved!") 
    } catch let error as NSError { 
     status.text = ("Could not save \(error), \(error.userInfo)") 
    } catch { 

    } 

    } 

    override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
    } 
} 

答えて

0

私は私が正しくあなたを理解しているかどうかはかなりわかりませんが、あなただけのCoreDataからデータを取得し、あなたがそのような何かができるラベルに表示しようとする場合:
CoreDataがあることを確認します輸入された。 NSFetchedResultsControllerDelegateデリゲートをクラスに追加し、グローバル変数var controller: NSFetchedResultsController<Contacts>!を作成します。 次にしようとする関数を作成フェッチしたデータを(!):

func attemptFetch() { 
    let context = getContext() 
    let fetchRequest: NSFetchRequest<Contacts> = Contacts.fetchRequest() 
    fetchRequest.sortDescriptors = [NSSortDescriptor(key: "name", ascending: true)] 

    let controller = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil) 

    controller.delegate = self 
    self.controller = controller 

    do { 
     try controller.performFetch() 
    } catch { 
     let error = error as NSError 
     print("\(error)") 
    } 
} 

controller.fetchedObjectsは今、あなたがでデータのname属性にアクセスすることができますContactsエンティティからとcontroller.fetchedObjects?[index].nameを持つすべてのデータの配列を保持していますインデックスindex。これで、この配列を繰り返し処理する何らかのループを作成し、表示するデータをdisplay.text = controller.fetchedObjects?[index].namedisplayラベル(最初にattemptFetch関数を呼び出すことを忘れないでください)に探します。

関連する問題