OCLint自定义规则
OCLint
Clang本身自带AST树遍历,可以实现静态代码检查。
OCLint是基于Clang tool 的静态代码分析工具,换句话说相当于做了一层针对Objective-C的封装。它的核心能力是对 Clang AST 进行分析,最后输出违反规则的代码信息,并且导出指定格式的报告。
Clang本身自带AST树遍历,可以实现静态代码检查。
OCLint是基于Clang tool 的静态代码分析工具,换句话说相当于做了一层针对Objective-C的封装。它的核心能力是对 Clang AST 进行分析,最后输出违反规则的代码信息,并且导出指定格式的报告。
缓动函数 通过时间的变化控制参数值变化的速率。
现实生活中,物体并不是突然启动或者停止,当然也不可能一直保持匀速移动。就像我们打开抽屉的过程那样,刚开始拉的那一下动作很快,但是当抽屉被拉出来之后我们会不自觉的放慢动作。掉落在地板上的东西,一开始下降的速度很快,后来就会在地板上来回反弹直到停止。
系统自带的缓冲函数如下:
kCAMediaTimingFunctionLinear
kCAMediaTimingFunctionEaseIn
kCAMediaTimingFunctionEaseOut
kCAMediaTimingFunctionEaseInEaseOut
kCAMediaTimingFunctionDefault
使用CAMediaTimingFunctionName
中如下方法可以取出贝塞尔曲线控制点:
- (void)getControlPointAtIndex:(size_t)idx values:(float[_Nonnull 2])ptr;
直接绘制出来是这样的曲线:
当然系统也提供自定义控制点方法:
/* Creates a timing function modelled on a cubic Bezier curve. The end
* points of the curve are at (0,0) and (1,1), the two points 'c1' and
* 'c2' defined by the class instance are the control points. Thus the
* points defining the Bezier curve are: '[(0,0), c1, c2, (1,1)]' */
+ (instancetype)functionWithControlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y;
Python版本是3.7.7
python3 --version
Python 3.7.7
因为要使用pycryptodome
,需要先卸载pycrypto
,pydes
:
pip3 uninstall pycrypto
pip3 uninstall pydes
pip3 install pycryptodome
SDK 开发就是写一堆代码,然后将这些代码打包成一个二进制文件,配合头文件和资源文件,给到别人直接使用。
如OCR技术、面部识别、声纹识别等功能含有大量专利、商业机密代码,需要打包、混淆后才能提供给外部集成。
依赖管理、加速编译。
整理完记录下来。
- ERROR | [iOS] file patterns: The `vendored_libraries` pattern did not match any file.
- ERROR | [iOS] file patterns: The `vendored_frameworks` pattern did not match any file.
- ERROR | [iOS] file patterns: The `resources` pattern did not match any file.
...
UIImage+LinearGradientColor.h
+ (UIImage *)as_imageWithLinearGradientColors:(NSArray *)colors;
+ (UIImage *)as_imageWithLinearGradientColors:(NSArray *)colors vertical:(BOOL)vertical;
+ (UIImage *)as_imageWithLinearGradientColors:(NSArray *)colors size:(CGSize)size;
+ (UIImage *)as_imageWithLinearGradientColors:(NSArray *)colors postions:(NSArray *)positions size:(CGSize)size;
+ (UIImage *)as_imageWithLinearGradientColors:(NSArray *)colors size:(CGSize)size vertical:(BOOL)vertical;
+ (UIImage *)as_imageWithLinearGradientColors:(NSArray *)colors postions:(NSArray *)positions size:(CGSize)size vertical:(BOOL)vertical;
+ (UIImage *)as_imageWithLinearGradientColors:(NSArray *)colors postions:(NSArray *)positions size:(CGSize)size vertical:(BOOL)vertical cornerRadius:(CGFloat)cornerRadius borderColor:(UIColor *)borderColor borderWidth:(CGFloat)borderWidth corners:(UIRectCorner)corners;
Related Document: TRON公链概览
引用文件来源于这里: PocketEOS-IOS
#import <Security/Security.h>
#import "NSObject+Extension.h"
#import "sha3.h"
#include "libbase58.h"
#include "sha2.h"
#include "uECC.h"
...
int length = 32;
uint8_t randomBytes[length];
int randomResult = SecRandomCopyBytes(kSecRandomDefault, length, randomBytes);
if(randomResult == 0) {
NSMutableString *randomSecrect =
[[NSMutableString alloc] initWithCapacity:length * 2];
for(NSInteger index = 0; index < length; index++){
[randomSecrect appendFormat:@"%02x", randomBytes[index]];
}
}