2017-06-09 3 views
0

SwiftのObjective Cコードを変換する必要があります。 は、ここに私の目標CコードSwiftのObjective C Predicateを3に変換する

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"FacilityId == %@ && Id != %@", facility[kColumnId], [[NSUserDefaults standardUserDefaults] valueForKey:kKeyUserId]]; 

return [[self coworkers] filteredArrayUsingPredicate:predicate].count; 

であると私は迅速にそれを変換します。ここに私の素早いコードがあります。

let filteredCoworkers = self.coworkers.filter{ 

     $0["FacilityId"] as? Int == facility[kColumnId] as? Int && $0["Id"] as? String != UserDefaults.standard.string(forKey: kKeyUserId) 
    } 
return filteredCoworkers.count 

しかし、私が空になったように動作していません。空であってはいけません。これは、フィルターが機能していないことを意味します。

+0

人々が何を探すべきか知っているので、「動作しない」を定義してください。 –

+1

動作していないことを定義し、直面している問題、エラーが発生していますか?はいの場合は、あなたの質問にそのエラーを追加してください –

+0

私は自分の質問を編集しました。フィルタリングが機能していません。 –

答えて

0

は、このコードを試してみてください。

var predicate = NSPredicate(format: "FacilityId == %@ && Id != %@", facility[kColumnId], (UserDefaults.standard.value(forKey: kKeyUserId) as? NSPredicate)) 
return self.coworkers.filter { predicate.evaluate(with: $0) }.count 
関連する問題