如何在AppCode中自定义getter模板

时间:2016-12-06 09:44:54

标签: intellij-idea appcode xcode-template

AppCode可以生成如下的getter代码:

- (UIView *)leftAnchorView {
    return _leftAnchorView;
}    

在偏好设置中 - >编辑 - >文件和代码模板 - > Code Tab,我发现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;
 }

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

1 个答案:

答案 0 :(得分:1)

“文件和代码模板”窗口右下角的特定模板中有各种变量的说明。因此,您需要使用保存类型的$RETURN_TYPE变量。但该类型包含您不需要的*。在Velocity模板中,您可以使用Java String函数,因此最终模板将是

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