我在几个小时内经历了许多Swift和Objective-C帖子,以帮助我创建一个函数,该函数返回xcassets中目录的字符串文件名数组。然后,我可以使用文件名数组创建另一个向我的用户显示随机图像的函数。
var imageDirectory = [String]()
func getContentOfImageDirectory() -> [String] {
imageDirectory.removeAll(keepCapacity: false)
let fm = NSFileManager.defaultManager()
let sourcePath = NSBundle.mainBundle().resourcePath!.stringByAppendingPathComponent("DeviceImagesFolder")
var tempArray = fm.contentsOfDirectoryAtPath(sourcePath, error: nil)
if tempArray != nil {
self.imageDirectory = tempArray as! [String]
return imageDirectory
}
else {
println("tempArray was nil")
if fm.fileExistsAtPath(sourcePath){
println("There is a file")
return []
}
else {
println("There is not a file")
return []
}
}
}
然而,tempArray不断返回nil和"没有文件"。很明显,我的函数返回了" DeviceImagesFolder"的整个包含,而不是文件名的数组。
如果有人能为这个问题提供解决方案,我们将非常感激。 欢呼声。
答案 0 :(得分:0)
Xcode将xcassets文件夹中的文件编译成一个文件(名为" Assets.car")。
因此,您应该将文件添加到" normal"而不是使用xcassets。夹。确保将它们复制到"复制捆绑资源"建立阶段。