Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取iOS应用程序';s&x201C~/图书馆&x201D;Swift中的可靠路径_Ios_Swift - Fatal编程技术网

获取iOS应用程序';s&x201C~/图书馆&x201D;Swift中的可靠路径

获取iOS应用程序';s&x201C~/图书馆&x201D;Swift中的可靠路径,ios,swift,Ios,Swift,我想在iOS设备的swift应用程序中获得一个目录,在那里我可以创建文件并向文件写入日志。我在这里读到,使用Objective-C,有一个解决方案。我试着用swift这样写: var appDir = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, true) 但是,NSLibraryDirectory和NSUserDomainMask在Swift中似乎不存在。如何做到这一点是Swift?解决方

我想在iOS设备的swift应用程序中获得一个目录,在那里我可以创建文件并向文件写入日志。我在这里读到,使用Objective-C,有一个解决方案。我试着用swift这样写:

var appDir = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, true)

但是,NSLibraryDirectory和NSUserDomainMask在Swift中似乎不存在。如何做到这一点是Swift?

解决方案

var appDir = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)
解释
您可以单击方法并查看其声明

func NSSearchPathForDirectoriesInDomains(directory: NSSearchPathDirectory, domainMask: NSSearchPathDomainMask, expandTilde: Bool) -> [AnyObject]!
如您所见,它需要
NSSearchPathDirectory
enum
NSSearchPathDomainMask
struct

在swift中,当您使用枚举时,不需要指定枚举类型,您可以使用大小写值本身
.LibraryDirectory
而不是
NSSearchPathDirectory.LibraryDirectory

在哪里记录了NSLibraryDirectory到.LibraryDirectory(或类似)的转换?我想了解为什么一个选项以开头,而另一个选项需要一个名称空间,请查看我的编辑来回答。Xcode为所有类生成Swift头。如果单击NSSearchPathForDirectoriesInDomains。它将向您显示带有Swift声明的Foundation->NSPATCH Utilities文件。有一个Xcode错误,当您单击一个方法并希望查看文档时,它有时无法显示Swift类。(这是因为斯威夫特仍处于测试阶段)。然后尝试重新启动Xcode,有时会有帮助。第二个参数也可以缩短为
。UserDomainMask
@KostiantynKoval
NSSearchPathForDirectoriesInDomains
FileManager.default.URL(用于:.libraryDirectory,位于:.UserDomainMask中)