Swft エラー cannot assign~ from[??] to ??
基本、詰め込み先が、配列になっていないというエラー
エラーメッセージ Cannot assign value of type 'NSSortDescriptor' to type '[NSSortDescriptor]?'
これはNSSortDescriptorを配列のNSSortDescriptorに詰め込んでいますよというエラー
var coredataPlans: Plans? coredataPlans = try context.fetch(fetchRequest) //==error Cannot assign value of type '[Plans]' to type 'Plans?'
配列にしなくては行けないときは、要素数が1の配列にする。
fetchの結果は常に配列
それを、配列でないものに詰め込んでいますよというエラー。
解決方法
var coredataPlans: [Plans]?
エラーその2
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Plans") do{ //fetch coredataPlans = try context.fetch(fetchRequest) //==error Cannot assign value of type '[Any]' to type '[Plans]?'
にしているとAny型で帰ってくる。
これはフェッチの結果がany型になっているのをPlans型にしようとしている。
解決方法
ジェネリクスを用いる。
そのクラスの持っている型で利用して作りますよということ。 結果がPlans型になっているので、汎用的に利用しやすい。
let fetchRequest = NSFetchRequest<Plans>(entityName: "Plans")
ジェネリクスとは汎用化
型を呼び出し元から決めてあげることにより、柔軟な設計が可能。 このクラスを継承していれば、受け入れますよという感じ。