У меня проблема с созданием и сравнением строки, которая, похоже, теряет ее содержимое. В настоящее время у меня есть это:
switch (creditPos)
{
case 0:
[creditCart.faceImage setImage:[NSString stringWithFormat:@"%@credits_face1.png", _director.platformPrefix]];
break;
case 1:
[creditCart.faceImage setImage:[NSString stringWithFormat:@"%@credits_face2.png", _director.platformPrefix]];
break;
case 2:
[creditCart.faceImage setImage:[NSString stringWithFormat:@"%@credits_face3.png", _director.platformPrefix]];
break;
case 3:
[creditCart.faceImage setImage:[NSString stringWithFormat:@"%@credits_face4.png", _director.platformPrefix]];
break;
case 4:
[creditCart.faceImage setImage:[NSString stringWithFormat:@"%@credits_face5.png", _director.platformPrefix]];
break;
default:
break;
}
faceImage - это объект, который я создал, и внутри функции для setImage у меня есть ...
- (void)setImage:(NSString *)inImageName {
NSLog(@"Before Break");
// By default set the scale to 1.0f and the filtering to GL_NEAREST
if(![imageName isEqualToString:inImageName])
{
NSLog(@"Hit");}
Проблема, с которой я сталкиваюсь, заключается в том, что когда я передаю строку, используя строку NSString stringWithFormat, она будет работать, возможно, 5-8 раз, прежде чем каким-либо образом вызывать ошибки и посылать что-то совершенно случайное в функцию, например -36.657.
Как это возможно? Ничто в параметрах не меняется, поскольку _director.platformPrefix устанавливается в начале программы и никогда не изменяется. Единственное, что меняется, - это выбор creditPos со строкой для создания + перехода к функции. Каким-то образом создаваемая строка после некоторых итераций просто теряет смысл, и попытка сравнить ее с последней переданной строкой приводит к сбою кода без каких-либо ошибок.
Справка: (