未找到 NSBundle mainBundle
Posted
技术标签:
【中文标题】未找到 NSBundle mainBundle【英文标题】:NSBundle mainBundle not found 【发布时间】:2011-12-18 11:49:10 【问题描述】:我在 iPad 上使用拆分视图模板。
在我的MasterViewController
代码中:
NSBundle * bundle = [NSBundle mainBundle];
有效。
在我的DetailViewController
中,相同的代码显示错误?我导入了<UIKit/UIKit.h>
。它知道NSBundle
,但无论出于何种原因都无法识别mainBundle
。
如果是这样就好了。可以帮到我!
Missing "[" at start of message send expression
编辑
回答:
我忘了括号。它在一个案例陈述中。所以使用:
case 1:
//bla ...
【问题讨论】:
为什么要在头文件中使用这段代码?你能把代码粘贴到发生这个错误的地方吗? 不,它在.m
文件中使用。对困惑感到抱歉。我编辑了我的答案。我想为MPMediaPlayerController
初始化一个NSURL
。
您看到的确切错误文本是什么?
复制和粘贴文本比使用图像更容易。
【参考方案1】:
如果声明变量的case语句需要在语句周围使用大括号,这只是简单的“C”语法。
固定:
switch (sender.row)
case 1:
NSURL *movieURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"testclip" ofType:@"mov"]];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
我将 MoviePlayerController
更改为 MPMoviePlayerController
假设这就是操作的意思。我还添加了缺少的 player
变量。
【讨论】:
是的。我自己发现的。 :)【参考方案2】:如果要声明新变量,则需要在 case 中添加花括号。
这段代码不会编译
case 1:
NSURL *foo;
这将:
case 1:
NSURL *foo;
【讨论】:
以上是关于未找到 NSBundle mainBundle的主要内容,如果未能解决你的问题,请参考以下文章
[NSBundle allBundles] 中未出现单独的 CoreData 模型