Отображение содержимого массива - PullRequest
0 голосов
/ 06 февраля 2012

Я загрузил массив:

currentBackground=4;
bgImages = [[NSArray alloc] initWithObjects:
            [UIImage imageNamed:@"mystery_01 320x460"],
            [UIImage imageNamed:@"mystery_02 320x460"],
            [UIImage imageNamed:@"mystery_03 320x460"],
            [UIImage imageNamed:@"mystery_04 320x460"],
            [UIImage imageNamed:@"mystery_05 320x460"],
            nil];

Теперь я хочу отобразить в метке имя файла изображения, отображаемого в данный момент.Я думал:

 mainLabel.text = [NSString stringWithFormat:@"bgImages= %@",[bgImages objectAtIndex:currentBackground]];

будет работать, но все, что я получу, это шестнадцатеричный код.У меня есть кнопка, которая очень хорошо прокручивает изображения.Но когда я пытаюсь отобразить имя изображения, все, что я получаю, это то, что я считаю адресом, где оно находится.

Мысли.

1 Ответ

1 голос
/ 07 февраля 2012

Когда вы делаете это - [bgImages objectAtIndex:currentBackground] - вы получаете экземпляр UIImage.И когда вы делаете stringWithFormat, вы правы в том, что он печатает адрес изображения и ничего более.

К сожалению, нет способа вернуть «имя» изображения из UIImage экземпляр, так что вам, вероятно, придется сделать что-то вроде этого:

currentBackground=4;
bgImages = [[NSArray alloc] initWithObjects:
            [UIImage imageNamed:@"mystery_01 320x460"],
            [UIImage imageNamed:@"mystery_02 320x460"],
            [UIImage imageNamed:@"mystery_03 320x460"],
            [UIImage imageNamed:@"mystery_04 320x460"],
            [UIImage imageNamed:@"mystery_05 320x460"],
            nil];
bgImageNames = [[NSArray alloc] initWithObjects:
                @"mystery_01 320x460",
                @"mystery_02 320x460",
                @"mystery_03 320x460",
                @"mystery_04 320x460",
                @"mystery_05 320x460",
                nil];

, а затем сделать:

mainLabel.text = [NSString stringWithFormat:@"bgImages= %@",[bgImageNames objectAtIndex:currentBackground]];

Или немного обернуть создание массива bgImagesможет даже быть умным и сделать это:

currentBackground=4;
bgImageNames = [[NSArray alloc] initWithObjects:
                @"mystery_01 320x460",
                @"mystery_02 320x460",
                @"mystery_03 320x460",
                @"mystery_04 320x460",
                @"mystery_05 320x460",
                nil];
NSMutableArray *newBgImages = [NSMutableArray arrayWithCapacity:0];
for (NSString *image in bgImageNames) {
    [newBgImages addObject:[UIImage imageNamed:image]];
}
bgImages = [NSArray arrayWithArray:newBgImages];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...