Ответ 1
макрос
#define AssertFileExists(path) NSAssert([[NSFileManager defaultManager] fileExistsAtPath:path], @"Cannot find the file: %@", path)
#define AssertNibExists(file_name_string) AssertFileExists([[NSBundle mainBundle] pathForResource:file_name_string ofType:@"nib"])
Вот набор макросов, которые вы можете вызвать, прежде чем пытаться загрузить .xib
или .nib
, они помогут идентифицировать отсутствующие файлы и выложить полезное сообщение о том, что именно отсутствует.
Решения
Цель-C:
if([[NSBundle mainBundle] pathForResource:fileName ofType:@"nib"] != nil)
{
//file found
...
}
Обратите внимание, в документации указано, что ofType:
должно быть расширением файла. Однако даже если вы используете .xib, вам нужно передать '@"nib", иначе вы получите ложноотрицательный результат.
Свифт:
guard Bundle.main.path(forResource: "FileName", ofType: "nib") != nil else {
...
}
(См.: оригинальный ответ touti: fooobar.com/questions/241808/...)