Проблема строки Objective C - PullRequest
0 голосов
/ 01 марта 2012

Здравствуйте, у меня возникла проблема с этим

for (NSString* fileName in fileList){
    if ( [fileName rangeOfString:@".png"].location != NSNotFound  ) {
        int x= col*130;



        NSLog(@"add %@", fileName);

        //create dynamically a nice thumbnail 
        UIImage* img = [UIImage imageWithContentsOfFile:
                        [self.documentsDir stringByAppendingPathComponent:fileName]
                        ];

        UIImageView* imgView = [[UIImageView alloc] initWithImage:img];
        imgView.frame = CGRectMake(0, 0, 110, 110);
        imgView.contentMode = UIViewContentModeScaleAspectFill;
        imgView.clipsToBounds = YES;

        UIButton* imgBtn = [UIButton buttonWithType:UIButtonTypeCustom];
        [imgBtn addTarget:self action:@selector(imgPressed:) forControlEvents:UIControlEventTouchUpInside];
        imgBtn.frame = CGRectMake(x, row*130, 120, 120);
        //imgBtn.backgroundColor = [UIColor lightGrayColor];
        [imgBtn addSubview:imgView];

        [self.canvas addSubview:imgBtn];

        [imgView release];


    col++;
        if (x > 760) {
            row++;
            col = 0;
        }
    }

это делает действительно хороший эскиз, но я хочу сделать его только с файлами с определенным именем, поэтому у меня проблема с загрузкой только определенных типов имен. как например У меня есть изображения с именем ... city1, city2, city3, все они типа png, и у меня также есть car1, car2 .... также png. Но однажды я хочу загрузить только города и один раз только автомобили ....

Есть ли возможность загружать только города или только автомобили ????

Спасибо всем. Я не знаю, как сделать точное сравнение со строкой.

Я бы использовал что-то вроде этого if (имя файла isequaltoString: @ "car%")

но это не работает .. = (

Ответы [ 3 ]

2 голосов
/ 01 марта 2012

У вас уже есть код, чтобы почти справиться с этим ...

 if ( [fileName rangeOfString:@".png"].location != NSNotFound  ) 

Вам просто нужно проверить @ "автомобиль" или все, что вы ищете, и вы не можете просто проверить свойство location или NSRange, потому что, если вы совпадете с индексом первого символа 0, ваш тест выше не будет выполнен.

Возвращаемое значение Структура NSRange, указывающая местоположение и длину в получателе первого вхождения aString. Возвращает {NSNotFound, 0}, если aString не найден или пуст (@ "").

Вы должны также проверить длину.

1 голос
/ 01 марта 2012

это может работать:

NSString *word = @"car1.png";
if ([word rangeOfString:@"car"].location == NSNotFound)
    NSLog(@"word does not contain car");
else
    NSLog(@"word contains car");
0 голосов
/ 01 марта 2012

Я бы использовал что-то вроде этого, если (имя файла isequaltoString: @ "car%")

isEqualToString:

Помните, документация не зло

Однако в вашем случае я бы предпочел использовать hasPrefix:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...