我可以在 xcode 的不同文件夹中使用相同的文件名以及如何在 ios Swift 语言中访问它

Posted

技术标签:

【中文标题】我可以在 xcode 的不同文件夹中使用相同的文件名以及如何在 ios Swift 语言中访问它【英文标题】:Can I use same file name in different folder in xcode and how to access it in ios Swift language 【发布时间】:2014-11-10 07:03:10 【问题描述】:

我正在使用 Swift 语言开发 ios 8 音频播放器。

我在男性和女性声音中都有一个带有“apple.mp3”的音频文件名相同的音频名称。这两个文件是两个不同的组,男性男性组和女性音频女性组。所以路径是male/apple.mp3 和female/apple.mp3。

我正在使用以下代码播放音频文件

    var audioPlayer = AVAudioPlayer()
    var currentAudioPath:NSURL!
    currentAudioPath = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(audioName, ofType: "mp3")!)

    AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
    AVAudioSession.sharedInstance().setActive(true, error: nil)
    UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
    audioPlayer = AVAudioPlayer(contentsOfURL: currentAudioPath, error: nil)
    audioPlayer.delegate = self
    audioPlayer.play()

    audioPlayer.prepareToPlay()

如何使用特定路径分别播放两个音频?

【问题讨论】:

【参考方案1】:

据我所知,如果您在项目中任何地方有相似的文件名,无论在子文件夹中有多深,Xcode 都会抱怨重复资源。 当您按名称请求图像时,Xcode 会“看到”整个项目,这是有利的一面。

简而言之,不,您不能在同一个项目中拥有两个同名的资源。建议给每个人一个唯一的名称。

【讨论】:

感谢@bauerMusic的回复。所以我们不能给文件路径提供一个特定的路径,比如male/apple.mp3吗? 我猜(?)它与编译所有内容有关。这些文件夹实际上只是为了方便。一个例外(我认为)可能是DocumentsLibrary 文件夹,但您不能真正将预编译资源放在那里。我通过给文件一个目录名解决了一个类似的问题。例如:male.apple.mp3female.apple.mp3。文件夹实际上只是代表唯一路径的唯一字符串。 (如果male.apple.mp3 不起作用,只需使用male_apple.mp3

以上是关于我可以在 xcode 的不同文件夹中使用相同的文件名以及如何在 ios Swift 语言中访问它的主要内容,如果未能解决你的问题,请参考以下文章