2

(a + b) ^ 2, sum((a + b) / 2)を使用するような式を計算する方法はNSExpression? の初心者ですNSExpression

(a + b) ^ 2 目的 c で正方形 2 全体を使用する方法。

4

4 に答える 4

12

NSExpression は、目的 c の数式を評価するのに役立ちます。

NSExpression を使用して数値の標準偏差を見つける方法を見てみましょう

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)統計手法一覧

average:
sum:
count:
min:
max:
median:
mode:
stddev:

2)算術関数

add:to:
from:subtract:
multiply:by:
divide:by:
modulus:by:
abs:
sqrt:
log:
ln:
raise:toPower:
exp:

3)バウンディング機能

ceiling:
trunc: 

4)ランダム関数

random
random:

5)二項算術関数

bitwiseAnd:with:
bitwiseOr:with:
bitwiseXor:with:
leftshift:by:
rightshift:by:
onesComplement:

6)日付機能

now

7) 文字列関数

lowercase:
uppercase:

8)ノーオペレーション

noindex:
于 2013-08-24T07:26:49.770 に答える
9

NSExpression は、数式を評価するのに最適です。コア データ クエリだけに限定されるわけではなく、式を文字列として評価するためにサード パーティのライブラリを追加したり、独自のパーサーを作成したりする必要はありません。

(a + b) ^ 2 ;) の質問に実際に答えるには

NSNumber *a = @4;
NSNumber *b = @4;
NSExpression *expression = [NSExpression expressionWithFormat:@"(%@ + %@)**2", a, b];
NSNumber *result = [expression expressionValueWithObject:nil context:nil];
NSLog(@"%@",result);
于 2013-12-26T18:40:38.153 に答える
1

NSExpression汎用の数式評価器ではありません。NSPredicateこれは、Core Data クエリの選択基準を記述するために使用することを意図しています。

于 2012-10-22T07:57:37.650 に答える
0

NSExpressionは、 NSPredicateで式を表すために使用されます。あなたのようなタスクを意図したものではありません。

実際には、数式の値を計算するために を使用できますが、この使用法はかなり制限されています。NSExpression数式を評価するには、Shunting-yardなどのアルゴリズムを使用して文字列パーサーを作成するか、このようなライブラリを再利用する必要があります。

于 2012-10-22T07:53:43.337 に答える