首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何分解Swift类初始化以避免冗余代码?

如何分解Swift类初始化以避免冗余代码?
EN

Stack Overflow用户
提问于 2015-03-23 16:15:55
回答 1查看 284关注 0票数 1

我正在尝试做一个定制的UIPickerView。在我的自定义类中,我必须重写“init(编码器aDecoder: NSCoder)”初始化器。

同时,我想要一个没有任何参数的初始化器。根据错误消息,我的类变量初始化是强制性的,但如果在单独的函数中进行初始化,则不会检测到它们的初始化。

代码语言:javascript
运行
复制
class MyPickerView: UIPickerView{
   var maxInt:CInt;    

   func baseInit(){
      maxInt = 10;
   }

   override init() {
      maxInt = 10;
      super.init();
   }

   required init(coder aDecoder: NSCoder) {
      maxInt = 10;
      super.init(coder: aDecoder)
   }    
}

在那里,我确实有用于"maxInt“初始化的冗余代码。

如果我在初始化器中替换了maxInt的初始化,我将收到以下错误消息:

属性“self.maxInt”在super.init调用时未初始化

我该怎么办呢。最佳做法应该是什么?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-23 16:59:32

可以使var可选,也可以在声明时初始化

代码语言:javascript
运行
复制
class MyPickerView: UIPickerView {
   var maxInt:CInt = 10 // or var maxInt:CInt?   
}

代码语言:javascript
运行
复制
class MyPickerView: UIPickerView {
   var maxInt:CInt?

   func setup() {
     maxInt = 10
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29215147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档