2015-10-14 49 views
1

我遇到了无法从mainBundle访问的视频资产问题。我正在使用XCode 7和Swift 2.0。我写了一个非常简单的测试应用。如何访问iOS mainBundle中的“丢失”媒体资源?

var objects = [String]() 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let fm = NSFileManager.defaultManager() 
     let path = NSBundle.mainBundle().resourcePath! 
     let items = try! fm.contentsOfDirectoryAtPath(path) 

     for item in items { 
       print ("item = \(item)") 
       objects.append(item) 
     } 

    } 

} 

我在我的应用程序四个媒体资产:1)testVideo.m4v II)benbeijing.mov III)TestVideoCopy.m4v和iv)benbeijing2.mov。

当我运行该程序时,我得到以下输出。

item = Base.lproj 
item = benbeijing.mov 
item = benbeijing2.mov 
item = Frameworks 
item = Info.plist 
item = mainBundleTests 
item = PkgInfo 

换言之,2个视频媒体项目未列出。

我已经在mainBundle文件夹中播放了标题,后缀,位置,但不能为我的生活找出为什么找不到这些项目。任何帮助将非常感激。

回答

1

我试着运行完全一样的代码,你正在运行。我能够看到我的包中出现的所有文件都被打印出来。

但是,然后,我假设你可能错过了将这些文件添加到目标。这也可能是一个可能的原因。

您是否确认您是否已将添加到捆绑的所有文件添加到相应的目标?

To add the file to target

+0

我很抱歉,但我不清楚它在哪里,我的“添加捆绑成相应的目标”。我无法弄清楚如何翻译您为我链接的图像。我检查了“构建阶段”,有趣的是,这两个缺失的文件没有包含在“复制束资源”下,但是当我添加它们并重建时,它仍然没有解决问题。 – petegrif

+0

当我说添加文件到目标。我的意思是你的跑步目标,视频文件必须添加到该目标(手机)。如何:1.添加文件时,请确保检查相应的目标。我让自己清楚了吗? –