无论如何都要这样做?
我在NSBundle上尝试了pathForResource:ofType:
,当它真的存在时它找不到xib。如果我尝试加载它并且它不存在loadNibNamed:owner:options:
崩溃,那么nibWithNibName:bundle:
基本上,我想在运行时知道是否应该在集合视图上为给定的单元格类型注册xib或类。
答案 0 :(得分:3)
您确定pathForResource:ofType:
无效吗?这不仅仅是常见的xib / nib混淆吗?
(。xib-files是ofType:@"nib"
)...
NSBundle *mainBundle = [NSBundle mainBundle];
NSString *path = [mainBundle pathForResource:@"crapXib" ofType:@"nib"]; // file is called crapXib.xib
if (path){
// whatever...
} else{
// whatever else
}
答案 1 :(得分:0)
您可以尝试使用NSFileManager
来检查文件是否存在,如果应用程序未本地化,则所有.nibs
都位于.ipa
的根目录中,例如:
NSString * root = [[NSBundle mainBundle] resourcePath];
if ([[NSFileManager defaultManager] fileExistsAtPath: [root stringByAppendingPathComponent:@"MainViewController.nib"]])
{
// exisits
}