Dan*_*i A 2 int objective-c nslog nsstring
这是我的主要内容:
int x=0;
NSString *new=[[NSString alloc]initWithString:@"9+4"];
x=[new intValue];
NSLog(@"hi %i",x);
Run Code Online (Sandbox Code Playgroud)
这导致9 ...因为赋予字符串的intValue将只读取数字并在字符不是数字时停止.
那么如何打印我的字符串的结果并得到一个13而不是?
实际上,这NSExpression是为了这个:
NSExpression *expression = [NSExpression expressionWithFormat:@"9+4"];
// result is a NSNumber
id result = [expression expressionValueWithObject:nil context:nil];
NSLog(@"%@", result);
Run Code Online (Sandbox Code Playgroud)
NSExpression是非常强大的,我建议你阅读它.您可以通过格式字符串传入对象来使用变量.