如何通过Tag访问NSMutablearray中的对象?

时间:2014-08-14 02:49:33

标签: ios objective-c arrays cocos2d-iphone

我对Obj-C很新,所以希望有人能伸出援助之手!

如何通过Tag访问NSMutablearray中的对象?

我正在创建一个if语句,我希望它检查对象是否= =对于带有标记" 1"的数组中的对象。这样的事情可能吗? (下面的大写单词是我不知道在Obj-C中怎么说的话).....

if (starInArray == MYMUTABLEARRAY OBJECT WITH THE TAG "1") {
do something;
};

我知道我可以使用[array objectAtIndex:i]但是我无法使用它,因为我的数组会在游戏进行时继续移除对象,我需要跟踪特定对象的触摸作为游戏继续。

任何帮助都会非常感激。谢谢!

2 个答案:

答案 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];
}