2017-07-27 13 views
1

私は、どのリストに保存したいのかに基づいて異なるコアデータオブジェクトに保存しようとしています。異なるタイプを関数に渡す

タイプに渡し、それに基づいて正しいリストに保存する関数を作ることは可能ですか?

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 
    if index == 0 { 
     let task = TodayTask(context: context) 

     task.name = taskText.text! // Do this in function insead 
     task.adress = addressField.text // Do this in function insead 
     task.date = userDate // Do this in function insead 

    }else if listIndex.selectedSegmentIndex == 1 { 
     let task = WeekTask(context: context) 
     task.name = taskText.text! 
    }else { 
     let task = Task(context: context) 
     task.name = taskText.text! 

func saveToCoreData(task: SomeList){ 
    let task = SomeList(context: context) // The correct list based on what the user chooses 
    task.name = taskText.text! 
    task.adress = addressField.text 
    task.date = userDate 
} 

答えて

1

ダイナミックディスパッチという技術を使用する必要があります。例:

func accept(value: String) { 
    //This to process a string 
} 

func accept(value: Int){ 
    //This called to process an Int 
} 

accept(value:myValue)を呼び出すと、関数が動的に正しい関数にディスパッチされます。

+0

ああ、ありがとう、私はそれを試してみよう! –

+0

私はあなたが言ったことを試みたが、私はそれが動作するように見えない、私はエラーを取得するタイプTodayTask.Typeの値をexptected引数型に変換することはできませんTodayTask –

+0

私は関数を書き直し、ありがとう! –

関連する問題