我对Obj-C很新,所以希望有人能伸出援助之手!
如何通过Tag访问NSMutablearray中的对象?
我正在创建一个if语句,我希望它检查对象是否= =对于带有标记" 1"的数组中的对象。这样的事情可能吗? (下面的大写单词是我不知道在Obj-C中怎么说的话).....
if (starInArray == MYMUTABLEARRAY OBJECT WITH THE TAG "1") {
do something;
};
我知道我可以使用[array objectAtIndex:i]但是我无法使用它,因为我的数组会在游戏进行时继续移除对象,我需要跟踪特定对象的触摸作为游戏继续。
任何帮助都会非常感激。谢谢!
答案 0 :(得分:2)
您可以使用NSPredicate。假设数组中的每个项都有一个标记属性。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tag == 1"];
NSArray *filteredArray = [myMutableArray filteredArrayUsingPredicate:predicate];
结果filteredArray
将是包含标签属性等于1的所有项目的数组。
答案 1 :(得分:0)
Y可以将您的游戏对象映射为与数组中索引相同的标记。
例如,您可以这样做:
/// stars array
NSMutableArray *stars = [[NSMutableArray alloc] init];
/// create stars
for(NSInteger i; i < NUM_STARS; i++)
{
Star *star = [[Star alloc] init];
star.tag = i; /// assume your star object has a property called tag
[stars addObject:star];
}