一、NSExpression 干啥的?
- NSExpression用于表示谓词表达式。比较操作在一个NSPredicate基于两个表达式,由NSExpression类的实例。表达式创建常量值,关键路径,等等。
二、用处
NSExpression *expression = [NSExpression expressionWithFormat:@"4 + 5 -2*3"];
id value = [expression expressionValueWithObject:nil context:nil];
NSLog(@"%@",value);
1、统计:
average:
sum:
count:
min:
max:
median:
mode:
stddev:
2、基本运算:
add:to:
from:subtract:
multiply:by:
divide:by:
modulus:by:
abs:
3、高级运算
sqrt:
log:
ln:
raise:toPower:
exp:
4、边界函数
ceiling: - (不小于数组中的值的最小积分值)
trunc: - (最接近但不大于数组中的值的积分值)
5、与math.h函数类似的函数
floor:
6、随机函数
random
random:
7、二进制运算
bitwiseAnd:with:
bitwiseOr:with:
bitwiseXor:with:
leftshift:by:
rightshift:by:
onesComplement:
8、日期函数
now
9、字符串函数
lowercase:
uppercase:
10、空操作
noindex:
NSArray*numbers = @[@1,@2,@3,@4,@5,@6];
NSExpression *expression1 = [NSExpression expressionForFunction:@"now" arguments:@[[NSExpression expressionForConstantValue:numbers]]];
id value1 = [expression1 expressionValueWithObject:nil context:nil];
NSLog(@"%@",value1);
#import <Foundation/Foundation.h>
@interface NSNumber (plus)
- (NSNumber *)factorial;
@end
#import "NSNumber+plus.h"
@implementation NSNumber (plus)
-(NSNumber *)factorial{
// return @(tgamma([self doubleValue] + 1));
return @(fabs([self doubleValue]+1));
}
@end
#import "ViewController.h"
#import "NSNumber+plus.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//3、自定义函数
NSExpression *expression2 = [NSExpression expressionWithFormat:@"FUNCTION(100, 'factorial')"];
id value2 = [expression2 expressionValueWithObject:nil context:nil];
NSLog(@"%@",value2);
}
网友评论