Spa*_*Dog 17 iphone cocoa cocoa-touch ipad ios
我有一个来自NSObject类的对象,我称之为"品牌"并具有以下属性:
.name
.number
.site
Run Code Online (Sandbox Code Playgroud)
在给定的时间,数十个这些对象存储在NSMutableArray上,如:
object 1
object 2
object 3
object 4
...
Run Code Online (Sandbox Code Playgroud)
我希望能够通过数字从数组中检索给定的对象.不是数组上对象的索引,而是对象的number属性(例如,get对象的number属性等于10).
我知道NSArrays有很聪明的方法来检索东西,但我不知道它们,因为我很少使用它.有没有办法从数组中检索该对象,而不必遍历数组上的所有对象并检查每个对象的数字属性?
你们能帮忙吗?谢谢.
skr*_*ram 15
我会推荐NSPredicate
.你可以用这样的东西来做,假设listOfItems
你的数组包含你NSObject
的所有属性.
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"number == 10"];
NSArray *filtered = [listOfItems filteredArrayUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)
您的过滤结果,任何匹配的数字10
现在都在filtered
数组中.如果你想回到你的对象,你可以做这样的事情:
YourObject *object = (YourObject*)[filtered objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
rob*_*off 12
NSUInteger indexOfObject10 = [myArray indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop){
MyObject *object = (MyObject *)obj;
return [object.number == 10];
}];
MyObject *object10 = myArray[indexOfObject10];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7646 次 |
最近记录: |