0

AppCode 可以生成如下 getter 代码:

- (UIView *)leftAnchorView {
    return _leftAnchorView;
}    

在 Preferences -> Editor -> File and Code Templates -> Code 选项卡中,我发现 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;
 }

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

4

1 回答 1

1

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

#if ($IVAR_IS_AVAILABLE == "true")
if(!$IVAR){
    $IVAR = [$RETURN_TYPE.replace("*"," ") new];
}
return $IVAR;#else
return $DEFAULT_RETURN_VALUE;#end
于 2016-12-06T18:27:24.747 回答