如何在 AppCode 中自定义 getter 模板

How can I custom getter templates in AppCode

AppCode 可以生成 getter 代码,如下所示:

- (UIView *)leftAnchorView {
    return _leftAnchorView;
}    

在首选项 -> 编辑器 -> 文件和代码模板 -> 代码选项卡中,我发现 getter 模板是

#if ($IVAR_IS_AVAILABLE == "true")
return $IVAR;#else
return $DEFAULT_RETURN_VALUE;#end

所以,我这样修改模板:

#if ($IVAR_IS_AVAILABLE == "true")
if(!$IVAR){
    $CUSTOM_CODE
}
return $IVAR;#else
return $DEFAULT_RETURN_VALUE;#end

结果是

- (UIView *)leftAnchorView {
    if(!_leftAnchorView){
    }
    return _leftAnchorView;
}

现在,我的目标是

 - (UIView *)leftAnchorView {
     if(!_leftAnchorView){
         _leftAnchorView = [UIView new];
     }
     return _leftAnchorView;
 }

谁能告诉我如何修改代码模板来实现我的目标?谢谢!

在文件和代码模板的右下角的具体模板中有各种变量的描述window。因此,您需要使用 $RETURN_TYPE 变量来保存类型。但是该类型包含您不需要的 * 。在 Velocity 模板中,您可以使用 Java 字符串函数,因此最终模板将是

#if ($IVAR_IS_AVAILABLE == "true")
if(!$IVAR){
    $IVAR = [$RETURN_TYPE.replace("*"," ") new];
}
return $IVAR;#else
return $DEFAULT_RETURN_VALUE;#end