我可以在 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 语言中访问它的主要内容,如果未能解决你的问题,请参考以下文章

在 xCode 中使用多个资产文件夹

使用相同文件夹名称的Xcode新项目删除了我的文件夹

旋转Xcode时不同的xib文件

Xcode 在更改时为每个应用程序目标编译情节提要

xcode - 资产目录 - 图像类型 - 相同的比例 - 不同的分辨率

将单元测试移动到 xcode 中的不同文件夹