代码库
在项目过程中,如果做到了可重复使用的组件,无论是 UIKit 还是其他组件操作,都可以放到这个 Repo 中建档。未来如果有同样的需求,可以直接到这个 Repo 中拿出代码使用。如果开发者后续已经掌握 Cocoapods 或 Carthage 等构建工具,也可以将其构建成 framework,供其他人使用。
规范
一定需要写说明,至少一行,可以写在 .h 文件方法的上方,或者单独写 README.md
CIFoundation
基本的格式检查,放的是项目共用的东西
--
CIFormatter
// 检查此字符串是否全部为数字
+ (BOOL)isDecimal:(NSString*)string;
// 检查此字符串是否符合台湾手机格式
+ (BOOL)checkMobileNumber:(NSString *)mobileNumber;
// 版本号检查,如果 version 2 比version 大
+ (BOOL)checkNeedUpdateFrom:(NSString*)version1
needUpdateVersion:(NSString*)version2;
// 邮箱检查,目前设定字符数为 2 ~ 100
+ (BOOL)checkEmailFormatIsValid:(NSString*)email;
CINumberFormatter
// 将一个 double 数字加上千分位,还可以设置小数点几位,小数点不足会补0
+ (NSString*)roundOff:(double)input fractionDigits:(NSInteger)fractionDigits;
CILockPatternView
使用手势解锁,需要设置圆点的顺序。灵感来源于 HUIPatternLockView
类别 + 扩展
NSString+URLEncoding
// 对 NSString 进行百分号编码,使这个 NSString 可以转换成 URL 不会出现 nil
- (nullable NSString *)stringByAddingPercentEncodingForRFC3986;
编码风格
目前遵循 Ray Wenderich
编码风格
xcodebuild 命令行脚本
xcodebuild \
-project CIFoundation.xcodeproj \
-scheme CIFoundation \
-sdk iphonesimulator12.1 \
-destination 'platform=iOS Simulator,name=iPhone 8,OS=12.1' \
test
也可以加上 xcpretty --test --color 上色
使用这个 framework 的项目需要添加这个 build phases
目前直接在使用 Cocoa Pods 项目内直接 embeded 这个 framework 会导致无法通过 App Store 的扫描,还在排查问题
FRAMEWORK="CIFoundation"
FRAMEWORK_EXECUTABLE_PATH="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/$FRAMEWORK.framework/$FRAMEWORK"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"