Для разговоров можно сказать, что у вас есть 5 поплавков, которые все хранятся в одном поплавке и все позиции изображения. Теперь, как бы я, если вообще возможно, посмотреть, какой из этих пяти поплавок равен 500, а если есть какие-либо поплавки, найдите, какие из них и дадут им новую позицию.Используйте один оператор if вместо нескольких
-(void)Position
{
ObjectOne.center = CGPointMake(ObjectOne.center.x, 500);
ObjectFour.center = CGPointMake(ObjectFour.center.x, 500);
Float[1] = ObjectOne.center.y;
Float[2] = ObjectTwo.center.y;
Float[3] = ObjectThree.center.y;
Float[4] = ObjectFour.center.y;
Float[5] = ObjectFive.center.y;
[self Cheaking];
}
-(void)Checking
{
if(Float[1 to 5] == 500) {
Find objects which are equal.
ObjectWhichIsEqual.center = CGPointMake(225, ObjectWhichIsEqual.center.y)
ObjectWhichIsEqualTwo.center = CGPointMake(225, ObjectWhichIsEqualTwo.center.y) }
}
UPDATE: Вместо того, чтобы использовать поплавок я теперь с помощью NSNumber для каждой координаты и хранить их в NSMutableSet. Прямо сейчас я использую NSPredicate, чтобы узнать, есть ли какие-то числа, равные 500, однако я не могу использовать этот оператор if для этого. Причина, почему я использую один, если заявление, чтобы сделать это, потому что я должен буду делать нагрузки, если заявления, например:
if(ObjectOne.center.y == 500) {
ObjectOne.center = CGPointMake(225, ObjectOne.center.y);
}
if(ObjectTwo.center.y == 500) {
ObjectTwo.center = CGPointMake(225, ObjectTwo.center.y);
} ect...
Где, как это один, если заявление для всех, однако я не знаю, как закончить его.
-(void)Position
{
ObjectOne.center = CGPointMake(0, 500);
ObjectFour.center = CGPointMake (0, 500);
NSNumber *one = [NSNumber numberWithFloat:ObjectOne.center.y];
NSNumber *two = [NSNumber numberWithFloat:ObjectTwo.center.y];
NSNumber *three = [NSNumber numberWithFloat:ObjectThree.center.y];
NSNumber *four = [NSNumber numberWithFloat:ObjectFour.center.y];
NSNumber *five = [NSNumber numberWithFloat:ObjectFive.center.y];
NSMutableSet *set = [NSMutableset setWithObjects:one, two, three, four, five, nil];
[self checking];
}
-(void)Checking
{
NSPredicate *pre;
pre = [NSPredicte predicateWithFormat:"SELF == %i", 500];
[set filterUsingPredicate:pre]; //line not working
if(pre == true) {find which objects are equal and move them // have no clue how to do this
}
}
Я знаю, что NSPredicate - это, вероятно, неправильный путь, так что есть что-то подобное, что решит эту проблему. Заранее спасибо!
Это выглядит как хороший план. В чем проблема? – matt
Является ли Float массивом? И вы только хотите узнать, равны ли поплавки, если они равны 500? И куда входят координаты? Я не уверен, что понимаю ваш вопрос ... –
Float - это 1D массив - или, по крайней мере, я думаю - float Float [5]; - –