与えられた:
MyObject *object1 = [MyObject createWithName:@"name1"];
MyObject *object2 = [MyObject createWithName:@"name2"];
MyObject *object3 = [MyObject createWithName:@"name3"];
NSArray *myArray = @[object1, object2, object3];
NSString *name = @"name1";
やっている
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == '%@'", name];
NSArray *filtered = [myArray filteredArrayUsingPredicate:predicate];
私を残します
filtered.count == 0
しかし
NSPredicate *predicate = [NSPredicate predicateWithFormat:
[NSString stringWithFormat:"name == '%@'",name]];
NSArray *filtered = [myArray filteredArrayUsingPredicate:predicate];
私を残します
[filtered objectAtIndex:0] == object1
なんで?これは predicateWithFormat の奇妙な動作のようです。NSPredicate のフォーマットの定義は NSLog/NSString とは異なりますか? docsで明らかなことは何も見つかりませんでした。
前もって感謝します!