appendingPathComponent无法以编程方式正确地快速4

时间:2018-11-28 09:14:58

标签: ios iphone swift image load

我有以下几行代码需要访问用于上传图像的文件夹。现在我无法解释为什么它们的排列顺序不正确,在我看来文件夹的编号是顺序排列的,但是它们的加载方式却不同

    static func loadStickers() -> [StickerCategory] {

    if let scat = StickersManager.stickerCategories {
        return scat
    }

    var sc:[StickerCategory] = []

    let iconsDir = Bundle.main.resourceURL!.appendingPathComponent("stickers").appendingPathComponent("icons")
    let stickersDir = Bundle.main.resourceURL!.appendingPathComponent("stickers").appendingPathComponent("actual")
    let fileManager = FileManager.default

    if let enumerator = fileManager.enumerator(atPath: iconsDir.path) {

        var currentStickers: [Sticker] = []
        var currentStickerCategoryName: String? = nil

        while let element = enumerator.nextObject() as? String {
            let iconPath = iconsDir.appendingPathComponent(element).path

            var isDir : ObjCBool = false
            if fileManager.fileExists(atPath: iconPath, isDirectory: &isDir) {
                if isDir.boolValue {
                    if let ccn = currentStickerCategoryName {
                        sc.append(StickerCategory(name: ccn, stickers: currentStickers))
                    }
                    currentStickers = []
                    currentStickerCategoryName = element
                } else {
                    let stickerPath = stickersDir.appendingPathComponent(element).path
                    currentStickers.append(Sticker(iconPath: iconPath, stickerPath: stickerPath))
                }
            }
        }
        if let ccn = currentStickerCategoryName {
            sc.append(StickerCategory(name: ccn, stickers: currentStickers))
        }
    }
    StickersManager.stickerCategories = sc
    return sc
}

0 个答案:

没有答案