首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSExpression有什么用?

NSExpression有什么用?
EN

Stack Overflow用户
提问于 2012-10-22 15:45:41
回答 4查看 4.8K关注 0票数 2

如何使用NSExpression计算像(a + b) ^ 2, sum((a + b) / 2)这样的公式?我是NSExpression的初学者。

(a + b) ^2如何在目标c中使用整个正方形2。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-22 15:57:38

NSExpression不是通用的数学表达式求值器。它旨在与NSPredicate一起使用来描述核心数据查询中的选择标准。

票数 1
EN

Stack Overflow用户

发布于 2013-08-24 15:26:50

NSExpression对于计算objective c中的数学表达式很有用。

让我们看看如何使用NSExpression求出数字的标准差

代码语言:javascript
复制
NSArray *arrNumbers = @[@3, @6, @3, @8, @4, @12, @9, @11];

NSExpression *expression = [NSExpression expressionForFunction:@"stddev:" arguments:@[[NSExpression expressionForConstantValue:arrNumbers]]];

id value = [expression expressionValueWithObject:nil context:nil];

就这么简单。

下面是按类别分组的函数列表。

1)统计方法列表

代码语言:javascript
复制
average:
sum:
count:
min:
max:
median:
mode:
stddev:

2)算术函数

代码语言:javascript
复制
add:to:
from:subtract:
multiply:by:
divide:by:
modulus:by:
abs:
sqrt:
log:
ln:
raise:toPower:
exp:

3)边界函数

代码语言:javascript
复制
ceiling:
trunc: 

4)随机函数

代码语言:javascript
复制
random
random:

5)二进制算术函数

代码语言:javascript
复制
bitwiseAnd:with:
bitwiseOr:with:
bitwiseXor:with:
leftshift:by:
rightshift:by:
onesComplement:

6)日期函数

代码语言:javascript
复制
now

7)字符串函数

代码语言:javascript
复制
lowercase:
uppercase:

8)无操作

代码语言:javascript
复制
noindex:
票数 12
EN

Stack Overflow用户

发布于 2013-12-27 02:40:38

NSExpression非常适合计算数学表达式。它不仅限于核心数据查询,而且您不需要额外的第三方库,也不需要编写自己的解析器来将表达式计算为字符串。

实际回答(a + b) ^2的问题;)

代码语言:javascript
复制
NSNumber *a = @4;
NSNumber *b = @4;
NSExpression *expression = [NSExpression expressionWithFormat:@"(%@ + %@)**2", a, b];
NSNumber *result = [expression expressionValueWithObject:nil context:nil];
NSLog(@"%@",result);
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13007001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档