gpt4 book ai didi

swift - 用 contentsOfDirectory Swift 填充 uipicker

转载 作者:行者123 更新时间:2023-11-28 09:04:38 27 4
gpt4 key购买 nike

我是 swift 的新手,我正在尝试使用我在名为“Dates”的文档目录中创建的文件夹中的文件名填充 uipicker。

我可以使用这段代码列出文件:

func listFilesFromDatesFolder() {

let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)

let documentDirectory = paths[0] as! String

let path = documentDirectory.stringByAppendingPathComponent("Dates")

let manager = NSFileManager.defaultManager()

if let allItems = manager.contentsOfDirectoryAtPath(path, error: nil) {
println(allItems)
}
}

我只是不确定如何将列表放入一个数组中,以便我可以快速加载选择器。

我以前在一个使用 objective-c 的应用程序中这样做过:

NSFileManager *directoryContent;

NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [path objectAtIndex:0];

NSString *contractorDir= [documentsDirectory stringByAppendingPathComponent:contractorTwo.text];

NSError *err;directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:contractorDir error: err];


NSArray *sorted = [directoryContent sortedArrayUsingSelector:@selector(compare:)];

我希望有人可以帮助解决这个问题,如果可以的话,在此先感谢您!

干杯

最佳答案

查看此示例代码:

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

let (filenamesOpt, errorOpt) = contentsOfDirectoryAtPath("/Users")
if let filenames = filenamesOpt {
println(filenames) // [".localized", "kris", ...]
}

let (filenamesOpt2, errorOpt2) = contentsOfDirectoryAtPath("/NoSuchDirectory")
if let err = errorOpt2 {
err.description // "Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be completed. ... "
}

getContentsOfDirectoryAtPath("/Users") { (result, error) in
if let e = error {
e.description
}
else if let filenames = result {
filenames // [".localized", "kdj", ... ]
}
}

getContentsOfDirectoryAtPath("/NoSuchDirectory") { (result, error) in
if let e = error {
e.description // "Error Domain=NSCocoaError..."
}
else if let filenames = result {
filenames
}
}

// Do something with the files in my home directory
let listMyFiles = { block in self.getContentsOfDirectoryAtPath("/Users/kdj", block: block) }

listMyFiles { (result, error) in
if let e = error {
e.description
}
else if let filenames = result {
filenames // [".bashrc", ... ]
}
}
}

// Tuple result

// Get contents of directory at specified path, returning (filenames, nil) or (nil, error)
func contentsOfDirectoryAtPath(path: String) -> (filenames: [String]?, error: NSError?) {
var error: NSError? = nil
let fileManager = NSFileManager.defaultManager()
let contents = fileManager.contentsOfDirectoryAtPath(path, error: &error)
if contents == nil {
return (nil, error)
}
else {
let filenames = contents as! [String]
return (filenames, nil)
}
}

// Continuation Passing Style (CPS) interface

// Get contents of directory at specified path, invoking block with (filenames, nil) or (nil, error)
func getContentsOfDirectoryAtPath(path: String, block: (filenames: [String]?, error: NSError?) -> ()) {
var error: NSError? = nil
let fileManager = NSFileManager.defaultManager()
let contents = fileManager.contentsOfDirectoryAtPath(path, error: &error)
if contents == nil {
block(filenames: nil, error: error)
}
else {
let filenames = contents as! [String]
block(filenames: filenames, error: nil)
}
}
}

让我知道它是否适合您。

引用自HERE .

关于swift - 用 contentsOfDirectory Swift 填充 uipicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31134044/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com