Macro
#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
, они помогут идентифицировать отсутствующие файлы и выложить полезное сообщение о том, что именно отсутствует.
Решения
Objective-C :
if([[NSBundle mainBundle] pathForResource:fileName ofType:@"nib"] != nil)
{
//file found
...
}
Обратите внимание, в документации указано, что ofType:
должно быть расширением файла. Однако даже если вы используете .xib, вам нужно передать `@" nib ", иначе вы получите ложноотрицательный результат.
Swift
guard Bundle.main.path(forResource: "FileName", ofType: "nib") != nil else {
...
}
(См .: touti оригинальный ответ: https://stackoverflow.com/a/55919888/89035)