2016-06-21 3 views
0

概要と私のNSManagedObjectのサブクラスを接続私ViewController.swift

これはおそらく非常にダム/簡単な質問ですが、それはループを通して私を投げているようです。私はStackOverflow上の私の仲間のアドバイスごとに、 "UsedInfo"エンティティ用のNSManagedObjectサブクラスを作成しました。私の最終的な目標は、このサブクラスを使用してCoreDataにユーザー情報を送信し、後でそれを取得することです。

ISSUE

問題は、私は私の新しいファイルを使用する方法を見つけ出すことができないということです、私のテキストフィールドがどこにある私の「ViewController.swift」ファイルと「UsedInfo + CoreDataProperties.swift」、接続された。下に関連するコードがあります。

ViewController.swiftのコード(SaveButton)

@IBAction func saveButton(sender: AnyObject) { 
    let appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate) 
    let context:NSManagedObjectContext = appDel.managedObjectContext 
    let managedContext:NSManagedObjectContext = appDel.managedObjectContext 
    let entity1 = NSEntityDescription.insertNewObjectForEntityForName("UsedInfo", inManagedObjectContext:context) as NSManagedObject 

    let one = pickerTextField.text 
    let two = modelName.text 
    let three = serialNo.text 
    let four = YOM.text 
    let five = engineHours.text 
    let six = locationOfMachine.text 

    entity1.setValue(one, forKey: "product") 
    entity1.setValue(two, forKey:"modelName") 
    entity1.setValue(three, forKey:"serialNo") 
    entity1.setValue(four, forKey:"yom") 
    entity1.setValue(five, forKey:"engineHours") 
    entity1.setValue(six, forKey:"location") 
    print(entity1.valueForKey("product")) 
    print(entity1.valueForKey("modelName")) 
    print(entity1.valueForKey("serialNo")) 
    print(entity1.valueForKey("yom")) 
    print(entity1.valueForKey("engineHours")) 


    do { 
     try context.save() 
    } 
    catch { 
     print("error") 
    } 


} 

"UsedInfo + CoreDataProperties.swift" のコード

import Foundation 
import CoreData 

extension UsedInfo { 

@NSManaged var engineHours: String? 
@NSManaged var location: String? 
@NSManaged var modelName: String? 
@NSManaged var product: String? 
@NSManaged var serialNo: String? 
@NSManaged var yom: String? 

} 

"UsedInfo.swift"

のコード
import Foundation 
import CoreData 
class UsedInfo: NSManagedObject { 

    //Insert code here to add functionality to your managed object subclass 

} 

事前にお世話になりました。私の完全な正義のために残念です。

答えて

1

NSManagedObjectのサブクラスを作成したので、特別な手順を講じなくても、そのサブクラスを使用して接続することができます。これは準備ができており、NSManagedObjectで定義されたものだけでなく、新しいサブクラスに追加されたものも実行できます。あなたはinsertNewObjectForEntityForName(_:inManagedObjectContext:)への呼び出しがUsedInfoのインスタンスを作成します

let entity1 = NSEntityDescription.insertNewObjectForEntityForName("UsedInfo", inManagedObjectContext:context) as NSManagedObject as! UsedInfo 

のようなものにするために、新しいインスタンスを作成するコードを変更することで起動すると思いますが、あなたがするas! UsedInfoを追加する必要がコアデータで

それがあなたが得ているものであることを明確にしてください。 as!を使用すると危険ですが、このダウンキャストが失敗した場合はすぐにを知りたいので、管理対象オブジェクトモデルを修正できるので、ここでは悪い考えではありません。

その後、entity1は、新しいUsedInfoクラスのインスタンスです。以下のコードでUsedInfoに宣言されているプロパティを使用できます。たとえば、

entity1.product = one 
+0

これはまさに私が探していたものです。ありがとう、トム。私は私の質問がばかげているのを知っている、私はiOSの開発にまったく慣れていない。 – gavsta707

関連する問題