現状
swiftで簡単なtodoアプリを制作していて、
previewをビルドするとRedundant conformance of 'TodoEntity' to protocol 'Identifiable'
エラーが出ております。
簡単なリストを表示しようとTodoList.swift
でpreviewを表示しようとしたところでエラーが出ております。
![
該当コード
swift
1//TodoEntity+Extension.swift 2 3import CoreData 4import SwiftUI 5 6extension TodoEntity: Identifiable{} 7extension TodoEntity { 8 9 static func create(in managedObjectContext: NSManagedObjectContext, 10 category: Category, 11 task: String, 12 time: Date? = Date()) { 13 let todo = self.init(context: managedObjectContext) 14 print(task) 15 todo.time = time 16 todo.category = category.rawValue 17 todo.task = task 18 todo.state = State.todo.rawValue 19 todo.id = UUID().uuidString 20 21 do { 22 try managedObjectContext.save() 23 } catch { 24 let nserror = error as NSError 25 fatalError("Unresolved error (nserror), (nserror.userInfo)") 26 } 27 } 28 29 30 31 enum Category: Int16 { 32 case ImpUrg_1st 33 case ImpNUrg_2nd 34 case NImpNUrg_3rd 35 case NImpNUrg_4th 36 37 func toString() -> String { 38 switch self { 39 case .ImpUrg_1st: 40 return "重要かつ緊急" 41 case .ImpNUrg_2nd: 42 return "重要だが緊急ではない" 43 case .NImpNUrg_3rd: 44 return "重要でないが緊急" 45 case .NImpNUrg_4th: 46 return "重要でも緊急でもない" 47 } 48 } 49 func image() -> String { 50 switch self { 51 case .ImpUrg_1st: 52 return "flame" 53 case .ImpNUrg_2nd: 54 return "tortoise.fill" 55 case .NImpNUrg_3rd: 56 return "alarm" 57 case .NImpNUrg_4th: 58 return "tv.music.note" 59 } 60 } 61 func color() -> Color { 62 switch self { 63 case .ImpUrg_1st: 64 return .tRed 65 case .ImpNUrg_2nd: 66 return .tBlue 67 case .NImpNUrg_3rd: 68 return .tGreen 69 case .NImpNUrg_4th: 70 return .tYellow 71 } 72 } 73 } 74 75 enum State: Int16 { 76 case todo 77 case done 78 } 79} 80
swift
1//TodoList.swift 2 3import SwiftUI 4import CoreData 5 6struct TodoList: View { 7 8 @FetchRequest( 9 sortDescriptors: [NSSortDescriptor(keyPath: \TodoEntity.time, 10 ascending: true)], 11 animation: .default) 12 var todoList: FetchedResults<TodoEntity> 13 14 let category: TodoEntity.Category 15 16 var body: some View { 17 List { 18 ForEach(todoList) { todo in 19 Text(todo.task ?? "notitle") 20 } 21 } 22 } 23} 24 25struct TodoList_Previews: PreviewProvider { 26 static let context = (UIApplication.shared.delegate as! AppDelegate) 27 .persistentContainer.viewContext 28 29 static var previews: some View { 30 TodoList(category: .ImpUrg_1st) 31 .environment(.managedObjectContext, context) 32 } 33} 34
仮説
-
おそらく、
TodoEntity+Extension.swift
のextension TodoEntity: Identifiable{}
のところでエラーが出ていると考えている。 -
Identifable{}が重複しているエラーだと思うが、他にこの記述をしている覚えがない
どなたかわかる方いらっしゃったらご教示よろしくお願いします。
環境
- XCode(Version 12.4 (12D4e))
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。