swift图片名提示和检查——SwiftGen的使用

问题

我们swift编程的时候,图片一般是放到Assets.xcassets里的,使用的时候是这样的:UIImage(named: "lalalala")。那如果我不小心写成了"lblblblb",或者是图片已经被移除了,代码是不会检查或报错的。

那要解决这个问题,把图片名放到代码(如enum)里就好了啊。那好,我们把图片名写到enum里,难道我们要对着Assets.xcassets,把图片名一个一个码带enum吗?NONONO,这样的事让脚步来做吧。那好,来,我们现在来写个脚步。别急啊,先去交友网站看看有没有已经实现好了的,果然就找到了SwiftGen:https://github.com/SwiftGen/SwiftGen

那好,那我们就讲解下SwiftGen的使用。

1、安装SwiftGen,看了一下说明文档,发现有 pod 'SwiftGen' ,懒人福音啊。好我们就用CocoaPods方式安装吧,把pod 'SwiftGen'写到Podfile里,pod install。安装完成。

2、配置一下SwiftGen。首先给我们项目的target添加一个Run Script。如图:

swift图片名提示和检查——SwiftGen的使用_第1张图片
添加Run Script

3、添加脚本,如下:

INPUT_DIR=$PROJECT_DIR/$PROJECT_NAME/Assets.xcassets
OUTPUT_DIR=$PROJECT_DIR/$PROJECT_NAME/AssetsCode
OUTPUT_NAME=Asset.swift

mkdir -p "$OUTPUT_DIR"

if which "$PROJECT_DIR"/Pods/SwiftGen/bin/swiftgen >/dev/null;
then
set -e
"$PROJECT_DIR"/Pods/SwiftGen/bin/swiftgen xcassets -t swift4 "$INPUT_DIR" --output "$OUTPUT_DIR/$OUTPUT_NAME"
else
echo "##run echo warning: SwiftGen not installed, download it from https://github.com/SwiftGen/SwiftGen"
fi

添加后的如图:

swift图片名提示和检查——SwiftGen的使用_第2张图片
 添加脚本

4、编译一下。在Assets.xcassets的同级目录下回多一个文件夹AssetsCode。如图:

swift图片名提示和检查——SwiftGen的使用_第3张图片
生成的文件夹

5、把文件夹添加到项目里。

swift图片名提示和检查——SwiftGen的使用_第4张图片
添加到项目里
swift图片名提示和检查——SwiftGen的使用_第5张图片
添加到项目后

6、使用,例如:

let image = UIImage(named: Asset.buoyNotice.name)

button.setImage(image, for: UIControl.State.normal)

swift图片名提示和检查——SwiftGen的使用_第6张图片
呐呐呐呐,看到没,提示!
swift图片名提示和检查——SwiftGen的使用_第7张图片
呐呐呐呐,看到没,图片!

7、图片的更新。以后每次编译代码是,脚本都会自动检查Assets.xcassets里的图片,并且生成最新的Asset.swift。就不用担心图片缺失或者写成图片名啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦。

你可能感兴趣的:(swift图片名提示和检查——SwiftGen的使用)