当试图调用便利init,Swift时调用额外的参数
发布时间:2020-12-14 04:45:05 所属栏目:百科 来源:网络整理
导读:我有简单的课程: class WmAttendee{ var mEmail:String! var mName:String! var mType:Int! var mStatus:String = "0" var mRelationShip:String! init( email:String,name:String,type:Int) { self.mEmail = email self.mName = name self.mType = type }
我有简单的课程:
class WmAttendee{ var mEmail:String! var mName:String! var mType:Int! var mStatus:String = "0" var mRelationShip:String! init( email:String,name:String,type:Int) { self.mEmail = email self.mName = name self.mType = type } convenience init( email:String,type:Int,status:String,relationShip:String) { self.init(email: email,name: name,type: type) self.mStatus = status self.mRelationShip = relationShip } } 当我尝试用5个参数测试第二个构造函数时,我得到:调用中的额外参数’status’ var att1 = WmAttendee(email: "myMail",name: "SomeName",type: 1); // OK var att2 = WmAttendee(email: "mail2",name: "name2",type: 3,status: "2",relationShip: 3) // ERROR Extra argument 'status' in call 为什么?我错过了什么吗? 谢谢, 解决方法
根据您的方法签名:
convenience init( email:String,relationShip:String) relationshipStatus应该是String而不是Int: var att2 = WmAttendee(email: "mail2",relationShip: "3") 由于您没有为relationshipStatus传递正确的类型,因此编译器无法为您的方便init匹配方法签名,并且返回默认初始化(它可以找到的最接近的匹配),这会触发Extra参数错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |