(a + b) ^ 2, sum((a + b) / 2)
を使用するような式を計算する方法はNSExpression
? の初心者ですNSExpression
。
(a + b) ^ 2 目的 c で正方形 2 全体を使用する方法。
(a + b) ^ 2, sum((a + b) / 2)
を使用するような式を計算する方法はNSExpression
? の初心者ですNSExpression
。
(a + b) ^ 2 目的 c で正方形 2 全体を使用する方法。
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:
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);
NSExpression
汎用の数式評価器ではありません。NSPredicate
これは、Core Data クエリの選択基準を記述するために使用することを意図しています。
NSExpressionは、 NSPredicateで式を表すために使用されます。あなたのようなタスクを意図したものではありません。
実際には、数式の値を計算するために を使用できますが、この使用法はかなり制限されています。NSExpression
数式を評価するには、Shunting-yardなどのアルゴリズムを使用して文字列パーサーを作成するか、このようなライブラリを再利用する必要があります。