2016-07-13 7 views
0

私は主にiOS開発者ですが、C#のVisual StudioでUIユニットテストを行っています。私は私の基準を満たした後、少し厄介であることを、返す要素を見つけるまでObjective-Cで私はおそらく以上のループのために、配列を取得します、Objective-C equivilentラムダ式

var table = Driver.FindElements(By.TagName("table")); 
return table.First(t => t.Displayed == true); 

今C#でこの出くわしました。
誰もがC#からこの素敵なものの素敵なきちんとした同情を知っていますか?
私はObjective-Cでラムダ式を使ったことがあり、ブロックを使っていましたが、その構文は恐ろしいものであり、ループのために少し難しいものです。
誰かが私を正しい方向に向けることができれば、私は最も感謝しています。それはかなりや簡潔な構文だため
おかげで、
ルーク

答えて

2

のObjective-Cが知られていません。私が作ってみた2つのオプションがあります。

NSArray *a = @[ @1, @2, @3, @4 ]; 

NSLog(@">= 3: %@", [a filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF >= 3"]]); 
NSLog(@">= 3: %@", [a filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id obj, id bindings) { return [obj integerValue] >= 3; }]]); 

だけ.firstObjectを追加し、フィルター配列のいずれかからのみ最初のオブジェクトを取ること。

スウィフトでは、より良いブロック構文、より良い型推論、自動閉包が得られます。

+0

これは私の研究で見つけたものですが、私は何かが欠けていたと思っていました。それは非常に有用なものなので、私は何かそれらのジャミーC#の開発者のような素敵なものを包むかもしれない:)ありがとう – mylogon