predicateWithFormat:argumentArray:
+(NSPredicate *)predicateWithFormat:(NSString *)predicateFormat: argumentArray:(NSArray *)arguments:
解説
検索条件を作ります
返り値
( NSPredicate * )
なし
引数
( NSString * )predicateFormat
( NSArray * )arguments
フレームワーク
Foundation
クラス
NSPredicate
Class Methods
使用可能
10.4
参照
例文
#import <Foundation/Foundation.h> // サンプルデータの構造体 @interface Person : NSObject @property (nonatomic, strong) NSString *name; // 名前 @property (nonatomic, assign) NSInteger age; // 年齢 @end @implementation Person @end // NSPredicateを使用したフィルタリングの例 @interface PredicateExample : NSObject - (void)filterPeople; @end @implementation PredicateExample - (void)filterPeople { // サンプルデータを作成 Person *alice = [Person new]; alice.name = @"Alice"; alice.age = 30; Person *bob = [Person new]; bob.name = @"Bob"; bob.age = 25; Person *charlie = [Person new]; charlie.name = @"Charlie"; charlie.age = 35; Person *diana = [Person new]; diana.name = @"Diana"; diana.age = 28; // Personオブジェクトの配列を作成 NSArray *people = @[alice, bob, charlie, diana]; // フィルタリング条件を定義(年齢の閾値) NSInteger ageThreshold = 30; // NSPredicateを使用して条件に基づいてフィルタリング // "age > %"というフォーマットを使い、引数としてageThresholdを渡す NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age > %d", ageThreshold]; // フィルタリングを実行 // people配列をpredicateに基づいてフィルタリング NSArray *filteredPeople = [people filteredArrayUsingPredicate:predicate]; // 結果を表示 NSLog(@"People older than %ld:", (long)ageThreshold); for (Person *person in filteredPeople) { NSLog(@"%@, Age: %ld", person.name, (long)person.age); } } @end // 使用例 int main(int argc, const char * argv[]) { @autoreleasepool { PredicateExample *example = [PredicateExample new]; // PredicateExampleのインスタンスを作成 [example filterPeople]; // filterPeopleメソッドを呼び出す } return 0; }
Swift
import Foundation // サンプルデータの構造体 struct Person { var name: String // 名前 var age: Int // 年齢 } class PredicateExample { // フィルタリングを行うメソッド func filterPeople() { // サンプルデータを作成 let people = [ Person(name: "Alice", age: 30), Person(name: "Bob", age: 25), Person(name: "Charlie", age: 35), Person(name: "Diana", age: 28) ] // フィルタリング条件を定義(年齢の閾値) let ageThreshold = 30 // NSPredicateを使用して条件に基づいてフィルタリング // "age > %@"というフォーマットを使い、引数としてageThresholdを渡す let predicate = NSPredicate(format: "age > %@", argumentArray: [ageThreshold]) // フィルタリングを実行 // people配列をpredicateに基づいてフィルタリング let filteredPeople = people.filter { predicate.evaluate(with: $0) } // 結果を表示 print("People older than \(ageThreshold):") for person in filteredPeople { print("\(person.name), Age: \(person.age)") } } } // 使用例 let example = PredicateExample() // PredicateExampleのインスタンスを作成 example.filterPeople() // filterPeopleメソッドを呼び出す