SwiftUI官方教程第五章更新数据环节报错求助
SwiftUI教程第五章:DailyScrum初始化错误解决方案
在ScrumsView的"Add"按钮代码中执行let newScrum = DailyScrum(data: newScrumData)时,出现两个错误:
Extra argument 'data' in callMissing arguments for parameters 'title', 'attendees', 'lengthInMinutes', 'theme' in call
问题原因
当前DailyScrum结构体仅提供了接受单个属性(title、String类型的attendees数组等)的初始化方法,没有定义接受DailyScrum.Data类型参数的构造器,因此无法直接通过Data实例创建DailyScrum对象。
解决方案
在DailyScrum的扩展中添加一个以Data为参数的初始化方法,提取Data中的属性值来初始化DailyScrum:
修改DailyScrum的扩展部分,添加如下初始化方法:
extension DailyScrum { // 保留原有扩展内容(Attendee、Data定义、data计算属性、update方法)... init(data: Data) { self.id = UUID() self.title = data.title self.attendees = data.attendees self.lengthInMinutes = Int(data.lengthInMinutes) self.theme = data.theme } }
验证效果
添加上述初始化方法后,DailyScrum(data: newScrumData)即可正常创建DailyScrum实例,错误提示会消失,Add按钮功能可以正常工作。
内容的提问来源于stack exchange,提问作者niklas-246
相关产品推荐
相关产品推荐

