自动生成自定义init方法

时间:2014-04-29 09:47:57

标签: ios xcode init

是否有可能从Xcode自动生成自定义init方法,因为Android Studio适用于Android? 我的意思是,如果我在.h中声明一些属性,例如:     int a;     int b;

所以,我想自动创建一个init方法:

- (id)initWithA:(int) aInner andB:(int) bInner
{
     a = aInner;
     b = bInner;
}

6 个答案:

答案 0 :(得分:3)

虽然仍然没有办法自动执行此操作(无需安装插件),但是有一个巧妙的技巧可以使用多个游标将属性声明列表转换为赋值:

  • 复制属性列表并将其粘贴到构造函数中
  • 使用 Shift + Ctrl +单击以插入多个光标( Shift + Ctrl + / 也可以)
  • 使用多个光标进行编辑以分配值

multi cursor

信用归保罗·哈德森(Paul Hudson):Xcode in 20 Seconds: Multiple cursors

答案 1 :(得分:2)

没有本地方法可以执行此操作,但是您可以安装XCode扩展,以便为此添加支持。

请参阅以下扩展名,因为这将提供您所追求的功能(Swift版本)。

https://github.com/Bouke/SwiftInitializerGenerator

答案 2 :(得分:0)

新的Xcode(在Xcode 10之后)针对类(不适用于struct)支持此问题。

步骤:

  1. 右键单击班级名称
  2. 点击“重构”
  3. 点击“生成成员级初始化程序”

enter image description here

关于结构。您可以先将其设置为类,然后在获得自动生成初始化后将其更改回struct。

答案 3 :(得分:-1)

哟可以创建一个片段。你需要稍微玩一下,在相关的地方创建漂亮的蓝色占位符,但最重要的是,附上一个键盘快捷键。例如" initx"

然后你就开始在你想要初始化器的位置输入快捷方式,瞧,你有自定义初始化。

答案 4 :(得分:-2)

是的,你可以通过自定义init方法初始化一个类,或者当你想用自定义init方法初始化类时可以传递参数

外观

在class.h文件中定义

 @interface CustomView : UIView 
   - (id)initWithA:(int) aInner andB:(int) bInner

在.m文件中实现initWithStringMethod。

 - (id)initWithA:(int) aInner andB:(int) bInner
       {
        if((self = [super init]))


        return self;
        }

从其他类或viewController初始化类

 CustomView *cv = [[CustomView alloc] initWithA:5 andB:10 ];

答案 5 :(得分:-3)

在实施文件中输入init,然后按enter:)

enter image description here

或者您可以创建自定义代码段,方法是创建一个自定义初始化代码实例,选择代码并将其拖到代码段库中。精美解释 here