Разве vidname не должно меняться до пути к ресурсу, а не после?
В любом случае, было бы лучше написать его, чтобы он принял строку NSString, которой вы могли бы передать имя файла. Вы знаете, как
-(NSURL *)movieURLForVideo: (NSString) videoFileName
?
Также мне не понравилось ваше отсутствие {}. Это значительно облегчает чтение / отладку для меня. Это хорошая привычка вообще. Если вы потратите дополнительное время на то, чтобы написать что-нибудь аккуратно, вы избавите себя от головной боли позже.
-(NSURL *)movieURL
{
NSBundle *bundle = [NSBundle mainBundle];
if (bundle)
{
if (vidName == @"Vid01")
{
vidName = @"Vid02";
}
else if (vidName == @"Vid02")
{
vidName = @"Vid03";
}
else if (vidName == @"Vid03")
{
vidName = @"Vid01";
}
NSString *moviePath = [bundle pathForResource:vidName ofType:@"mov"];
if (moviePath)
{
mMovieURL = [NSURL fileURLWithPath:moviePath];
}
}
return mMovieURL;
}
Установлено ли для vidName значение Vid01? Я не видел этого, поэтому я должен спросить. Это просто сбивает с толку в целом. Я писал для OS X, поэтому я не уверен, есть ли какие-либо различия, но я использую это, когда я загружаю карты в моем текущем проекте:
NSString* mapPath = [[NSBundle mainBundle] pathForResource:mapFileName ofType:mapFileType];
NSURL* mapURL = [NSURL fileURLWithPath: mapPath];
currentMap_ = [[Map alloc] initWithContentsOfURL: mapURL];
Просто кажется, что ты пишешь гораздо больше, чем нужно.