首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSExpression找到指数值吗?

使用NSExpression找到指数值吗?
EN

Stack Overflow用户
提问于 2012-10-22 12:07:01
回答 2查看 642关注 0票数 1

我试图使用NSExpression计算指数值,如下所示:

代码语言:javascript
复制
NSNumber *number1 = [NSNumber numberWithInteger:2];        
NSNumber *number2 = [NSNumber numberWithInteger:4];

NSArray *arrNum=[NSArray arrayWithObjects:number1,number2,nil];
NSExpression *arrayExpression = [NSExpression expressionForConstantValue: arrNum];

NSArray *arrExp=[NSArray arrayWithObject:arrayExpression]; 

NSExpression* expression =[NSExpression expressionForFunction:@"raise:toPower:" arguments:arrExp];

NSLog(@"powerExp:%@",expression);

int  resultSum = [[expression expressionValueWithObject:nil context: nil] intValue];

NSLog(@"resultnum:%f",resultSum);

我发现了一个错误:

-__NSArrayI doubleValue:未识别的选择器发送到实例0x7439e60 2012-10-22 16:04:04.034操作程序3958:C07*终止应用程序由于未识别异常'NSInvalidArgumentException',原因:‘-_NSArrayI doubleValue:未识别的选择器发送到实例0x7439e60’

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-24 10:41:57

代码语言:javascript
复制
NSNumber *number1 = [NSNumber numberWithInteger:2];
NSNumber *number2 = [NSNumber numberWithInteger:4];

NSExpression *expr1 = [NSExpression expressionForConstantValue:number1];
NSExpression *expr2 = [NSExpression expressionForConstantValue:number2];

NSArray *exprArgs = [NSArray arrayWithObjects:expr1, expr2, nil];

NSExpression *expression = [NSExpression expressionForFunction:@"raise:toPower:" arguments:exprArgs];
NSLog(@"powerExp:%@",expression);

int resultSum = [[expression expressionValueWithObject:nil context: nil] intValue];
NSLog(@"resultnum:%d",resultSum);

输出:

代码语言:javascript
复制
powerExp:2 ** 4
resultnum:16
票数 1
EN

Stack Overflow用户

发布于 2012-10-22 12:15:12

expressionForConstantValue:需要一个NSNumber。你把它传给了NSArray of NSNumber

exp:函数只取一个数字(n)并返回e^n,这就是您要做的吗?或者您是想使用raise:toPower:,它需要两个值?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13011119

复制
相关文章

相似问题

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